This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [pushed] Remove all loaded objects if dlopen fails, ignoring NODELETE [BZ #20839]
- From: Szabolcs Nagy <Szabolcs dot Nagy at arm dot com>
- To: "noreply at gnutoolchain-gerrit dot osci dot io" <noreply at gnutoolchain-gerrit dot osci dot io>, "fweimer at redhat dot com" <fweimer at redhat dot com>, "libc-alpha at sourceware dot org" <libc-alpha at sourceware dot org>, "carlos at redhat dot com" <carlos at redhat dot com>, "gnugerrit at kalvdans dot no-ip dot org" <gnugerrit at kalvdans dot no-ip dot org>, "Sourceware to Gerrit sync (Code Review)" <gerrit at gnutoolchain-gerrit dot osci dot io>
- Cc: nd <nd at arm dot com>
- Date: Mon, 2 Dec 2019 10:06:51 +0000
- Subject: Re: [pushed] Remove all loaded objects if dlopen fails, ignoring NODELETE [BZ #20839]
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none
- Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=sviUjZ6BTuLxZ922iOZN9FhYkkYGUPCkqXBE8aFlKBY=; b=XeXPvMfYu1c7PA7WN3PaKGKj4o2bJ32m7ig83NnoTX1H32N9D5C1prS8sppf9QlunQaRkGZvUqzGL/3+qwcbDEN5ltttpuhkgt+GLWDPjwV4YUk9Un2qoUkuo6rD9ZOY2YJ0zpZ7z3TREFHRlOMDcA6HDEVMREDJQ3iM8Y/YSGLvsEWo3+vtOQHVBWJ8UloGMsPD5Bdu2qbYHuhubTNP+Se5itmE0iDBNqj/279Zsnsf36XEIjvk3aoVNGtNojyhmm9NPm+ANmqSVLTF7Poj/J3S2UHMiHeaOx8vpq5V/tUt4tUvyEBup0A3BFvWlZ76ks5nG15hJBIc3Bzsiy3DtQ==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FOseJ8UTbp3AcQD32Qi+ITbX+Ov9VTl3Ecx+7hZYvMHadEhoftMGrPQoXTQsnhv/fMla2EsegQ0ten3PT99uZOgsWsnpGwDqxlDgbU83gVnrAaItnZp1pZpwS4Vjb3XDjsBE54sSAvRPob4IJl+B8hk2GTfp4Kf7a7W1h8RBLGTCyjhTJOKBISFZRSFXed7sjV0Gs99DglA/+DKbkSHgx5LsjXk2pyPQLuWgOjw49Fk4cH2XAdGyO0zwXETSxW4MK3FqiXHM/Q1FNWJYi2ZwKOCSvffDvPIlYhkKJGzcrjZwBmck7KoeJp9tWrB5UJjAZCixj3gGfNbtNAGDcJ+ZgA==
- Original-authentication-results: spf=none (sender IP is ) smtp.mailfrom=Szabolcs dot Nagy at arm dot com;
- References: <gerrit.1572549639000.Ib2a3d86af6f92d75baca65431d74783ee0dbc292@gnutoolchain-gerrit.osci.io> <20191127203045.0D46E20AF6@gnutoolchain-gerrit.osci.io>
On 27/11/2019 20:30, Sourceware to Gerrit sync (Code Review) wrote:
> Sourceware to Gerrit sync has submitted this change.
>
> Change URL: https://gnutoolchain-gerrit.osci.io/r/c/glibc/+/471
> ......................................................................
>
> Remove all loaded objects if dlopen fails, ignoring NODELETE [BZ #20839]
>
> This introduces a “pending NODELETE” state in the link map, which is
> flipped to the persistent NODELETE state late in dlopen, via
> activate_nodelete. During initial relocation, symbol binding
> records pending NODELETE state only. dlclose ignores pending NODELETE
> state. Taken together, this results that a partially completed dlopen
> is rolled back completely because new NODELETE mappings are unloaded.
>
> Tested on x86_64-linux-gnu and i386-linux-gnu.
>
> Change-Id: Ib2a3d86af6f92d75baca65431d74783ee0dbc292
> ---
> M elf/Makefile
> M elf/dl-close.c
> M elf/dl-lookup.c
> M elf/dl-open.c
> M elf/get-dynamic-info.h
> A elf/tst-dlopenfail.c
> A elf/tst-dlopenfaillinkmod.c
> A elf/tst-dlopenfailmod1.c
> A elf/tst-dlopenfailmod2.c
> M include/link.h
> 10 files changed, 328 insertions(+), 38 deletions(-)
>
> Approvals:
> Carlos O'Donell: Looks good to me, approved
i see
FAIL: elf/tst-dlopenfail
and
$ cat elf/tst-dlopenfail.out
info: attempting to load tst-dlopenfailmod1.so
tst-dlopenfailmod1 constructor executed
on the aarch64 buildbot