This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] elf: Fix LD_AUDIT for modules with invalid version (BZ#24122)



On 24/01/2019 10:33, Florian Weimer wrote:
> * Siddhesh Poyarekar:
> 
>> On 24/01/19 2:14 AM, Carlos O'Donell wrote:
>>>> Siddhesh,
>>>>
>>>> It is acceptable for 2.29?
>>>  
>>> It's OK with me. Siddhesh gets to make the call.
>>> This is only a bug fix.
>>>
>>> Reviewed-by: Carlos O'Donell <carlos@redhat.com>
>>
>> OK
> 
> This broke the build with at least GCC 8 and the GCC 9 pre-release on
> x86-64 and ppc64le:
> 
> rtld.c: In function ‘dl_main’:
> rtld.c:1556:8: error: ‘lav’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
>         _dl_debug_printf (
>         ^~~~~~~~~~~~~~~~~~
>  "  auditor disabled since expected version %d is greater than "
>  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>  "supported version %d.\n",
>  ~~~~~~~~~~~~~~~~~~~~~~~~~~
>             lav, LAV_CURRENT);
>             ~~~~~~~~~~~~~~~~~
> 
> Looks like the control flow is too complicated.  I think it's a false
> positive.
> 
> How should we fix this?  Inhibit the warning (making the sources even
> more convoluted than they are)?  Revert the patch?  Factor out the audit
> module loading into a separate function and simplify the control flow?

It does seem a false positive, since lav will always be set if laversion
is not NULL and the code explicitly checks for it. Let me try if
refactoring this can help gcc handle it correctly.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]