[PATCH v2] Fix use after free warning introduced by gcc 12.1
Krishna Chaitanya
chaitanya.mgit at gmail.com
Sun Nov 5 09:34:09 PST 2023
On Sun, Apr 30, 2023 at 12:04 AM Krishna Chaitanya
<chaitanya.mgit at gmail.com> wrote:
>
> On Fri, Apr 28, 2023 at 9:09 PM Jouni Malinen <j at w1.fi> wrote:
> >
> > On Fri, Apr 21, 2023 at 12:58:21AM +0530, Krishna wrote:
> > > gcc 12.1 complains about using pointer after realloc as it could
> > > potentially be moved/freed, causing any uses after UB.
> > >
> > > Fix this by doing checks before alloc and use those statuses and update
> > > with new BSS.
> >
> > Could you please provide the exact warning message produced by the
> > compiler? gcc 12.1 did not complain about anything in my test setup when
> > compiling wpa_supplicant, so I'm assuming this would need some extra
> > warnings to be enabled.
>
> ../../../../../modules/lib/hostap/wpa_supplicant/bss.c:701:25: error:
> pointer 'bss' may be used after 'realloc' [-Werror=use-after-free]
> 701 | wpa_bss_update_pending_connect(wpa_s, bss, nbss);
>
> >
> > As far as the "use of a pointer after realloc" is concerned, it should
> > be noted that the implementation here does not dereference the old
> > pointer after the realloc() call. What is being done here is a
> > check of whether the buffer was indeed moved by comparing the pointer
> > values before and after the realloc call. Is that really UB or is that
> > an excessive warning from the compiler?
> Well, the code looks fine, but as the pointer after realloc might not
> exist, compiler
> can optimize the code causing indeterminate behaviour. This is discussed
> here https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104069 and
> https://www.reddit.com/r/C_Programming/comments/vffgpo/comment/icvvw8e/?utm_source=share&utm_medium=web2x&context=3
Gentle reminder.
More information about the Hostap
mailing list