This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] Clear GL(dl_initfirst) when freeing its link_map memory [BZ# 25396]
- From: Siddhesh Poyarekar <siddhesh at gotplt dot org>
- To: Florian Weimer <fweimer at redhat dot com>, "H.J. Lu" <hjl dot tools at gmail dot com>
- Cc: GNU C Library <libc-alpha at sourceware dot org>
- Date: Thu, 16 Jan 2020 21:04:28 +0530
- Subject: Re: [PATCH] Clear GL(dl_initfirst) when freeing its link_map memory [BZ# 25396]
- References: <CAMe9rOqOiaOcsZ=FQWSo6YPiAadX1X=Dgnvxzu5GAwB2mzJAcg@mail.gmail.com> <87v9pbsb6a.fsf@oldenburg2.str.redhat.com>
On 16/01/20 8:25 pm, Florian Weimer wrote:
>> From de86cd3ee3a4fdc072cbcfa1b87abcdba472263f Mon Sep 17 00:00:00 2001
>> From: "H.J. Lu" <hjl.tools@gmail.com>
>> Date: Thu, 16 Jan 2020 06:45:36 -0800
>> Subject: [PATCH] Clear GL(dl_initfirst) when freeing its link_map memory [BZ#
>> 25396]
>>
>> We should clear GL(dl_initfirst) when freeing its link_map memory.
>>
>> Tested on Fedora 31/x86-64 with CET.
>> ---
>> elf/dl-close.c | 4 ++++
>> 1 file changed, 4 insertions(+)
>>
>> diff --git a/elf/dl-close.c b/elf/dl-close.c
>> index 104c299209..73b2817bbf 100644
>> --- a/elf/dl-close.c
>> +++ b/elf/dl-close.c
>> @@ -756,6 +756,10 @@ _dl_close_worker (struct link_map *map, bool force)
>> if (imap->l_runpath_dirs.dirs != (void *) -1)
>> free (imap->l_runpath_dirs.dirs);
>>
>> + /* Clear GL(dl_initfirst) when freeing its link_map memory. */
>> + if (imap == GL(dl_initfirst))
>> + GL(dl_initfirst) = NULL;
>> +
>> free (imap);
>> }
>> }
>
> Thanks, looks good to me.
>
> Siddhesh, is this okay for master? And my test case as well?
>
> <https://sourceware.org/ml/libc-alpha/2020-01/msg00320.html>
>
OK for master, I've reviewed and approved the test case too.
Thanks,
Siddhesh