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 v2] Bug 11941: Improper assert map->l_init_called in dlclose


On 12/23/2016 05:37 AM, Florian Weimer wrote:
> On 12/22/2016 09:47 PM, Carlos O'Donell wrote:
> 
>> s/plugin/plugin_func/g.
> 
> GNU does not use “()” to mark function names:
> 
> +   destructed we will be calling dlclose() on an object that has already
> +   been destructed.  It is allowed to call dlclose() in this way and
> +     hasn't called primary(), in that case do nothing.  */
> 
> There is still a missing space before the parameter list in a function pointer type:
> 
> +  plugin_func = (void (*)(void)) dlsym (plugin_lib, "plugin_func");
> 
> Okay with these changes.

v5
- Removed () markup for function names.
- Fixed GNU style error.

Committed.

commit 57707b7fcc38855869321f8c7827bfe21d729f37
Author: Carlos O'Donell <carlos@redhat.com>
Date:   Fri Dec 23 13:30:22 2016 -0500

    Bug 11941: ld.so: Improper assert map->l_init_called in dlclose
    
    There is at least one use case where during exit a library destructor
    might call dlclose() on a valid handle and have it fail with an
    assertion. We must allow this case, it is a valid handle, and dlclose()
    should not fail with an assert. In the future we might be able to return
    an error that the dlclose() could not be completed because the opened
    library has already been unloaded and destructors have run as part of
    exit processing.
    
    For more details see:
    https://www.sourceware.org/ml/libc-alpha/2016-12/msg00859.html

-- 
Cheers,
Carlos.


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