[PATCH] nss_files: Fix /etc/aliases null pointer dereference [BZ #24059]

Florian Weimer fw@deneb.enyo.de
Sat Feb 2 17:07:00 GMT 2019


* Szabolcs Nagy:

> * Florian Weimer <fweimer@redhat.com> [2019-02-01 18:32:23 +0100]:
>> * Szabolcs Nagy:
>> >
>> > libnss_files.so.2 is not listed as explicit dependency
>> > for some reason so it is not loaded at program startup,
>> > but after chroot is entered, but it's not available in
>> > the chroot so the first api call fails.
>> 
>> There's already this in nss/Makefile:
>> 
>> $(objpfx)tst-nss-files-alias-truncated: $(objpfx)/libnss_files.so
>> 
>> I expected this causes a DT_NEEDED entry to be added to the executable,
>> so it is loaded upon startup, outside of the chroot.
>
> it seems debian/ubuntu gcc always passes --as-needed to the linker
> https://wiki.debian.org/ToolChain/DSOLinking

Nice find.  Yes, that completely explains it.

> so either a reference is needed to the lib or
>  -Wl,--no-as-needed lib -Wl,--as-needed
> ldflag to force a DT_NEEDED.

Hmm.  Should we put this on the general linker command line for tests?
Are there any cases where we actually want --as-needed behavior for
objects linked into tests?

> ..or copy the lib to the chroot.

The test-in-container framework does not work on our currrent reference
machines, even as root. 8-(

In other tests, I have used dlopen before the chroot.  I could adjust
this test accordingly, but it adds needless complexity in my opinion.



More information about the Libc-alpha mailing list