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: Florian Weimer <fweimer at redhat dot com>
- To: "H.J. Lu" <hjl dot tools at gmail dot com>
- Cc: GNU C Library <libc-alpha at sourceware dot org>, Siddhesh Poyarekar <siddhesh at gotplt dot org>
- Date: Thu, 16 Jan 2020 15:55:41 +0100
- Subject: Re: [PATCH] Clear GL(dl_initfirst) when freeing its link_map memory [BZ# 25396]
- References: <CAMe9rOqOiaOcsZ=FQWSo6YPiAadX1X=Dgnvxzu5GAwB2mzJAcg@mail.gmail.com>
> 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>
Florian