Re: [PATCH] hostapd: Fix rnr ie length when no need to report bss

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Aug 18, 2023 at 03:16:39PM +0800, Allen Ye wrote:
> Fix rnr ie length when no need to report bss. If we don't have content in
> TBTT then don't need to change the length of the ie (*size_offset).

> diff --git a/src/ap/ieee802_11.c b/src/ap/ieee802_11.c
> @@ -7484,8 +7484,10 @@ static u8 * hostapd_eid_rnr_iface(struct hostapd_data *hapd,

>  		start = i;
> -		*tbtt_count_pos = RNR_TBTT_INFO_COUNT(tbtt_count - 1);
> -		*size_offset = (eid - size_offset) - 1;
> +		if (tbtt_count != 0) {
> +			*tbtt_count_pos = RNR_TBTT_INFO_COUNT(tbtt_count - 1);
> +			*size_offset = (eid - size_offset) - 1;
> +		}

That tbtt_count - 1 part looks obviously wrong for tbtt_count == 0, but
does this actually fix the full issue here? The eid pointer has already
been advanced by four bytes at this point, i.e., the fixed fields of the
Neighbor AP Information field has already been written here (with the
first octet not explicitly written, but it would likely be initialized
to 0). Those four bytes would remain here and the next iteration of the
while loop might add more entries after this with another set of those
four bytes. And that would seem to result in invalid information.

In addition to making those two operations conditional on tbtt_count >
0, should this also restore eid and len back to their previous values
(i.e., something like eid -= RNR_TBTT_HEADER_LEN; len -=
RNR_TBTT_HEADER_LEN;)?

-- 
Jouni Malinen                                            PGP id EFC895FA

_______________________________________________
Hostap mailing list
Hostap@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/hostap



[Index of Archives]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux