[PATCH] tst-tls6.sh: Replace space with ':' in LD_PRELOAD
Adhemerval Zanella Netto
adhemerval.zanella@linaro.org
Tue Feb 6 14:10:07 GMT 2024
On 06/02/24 11:02, Jakub Jelinek wrote:
> On Tue, Feb 06, 2024 at 03:00:12PM +0100, Florian Weimer wrote:
>> * H. J. Lu:
>>
>>> Replace space with ':' in LD_PRELOAD. This fixes [BZ #31344].
>>
>> I think the test currently passes because we use an ELF constructor in
>> the LD_PRELOAD module to register test cases. So we just lose some test
>> coverage by ignoring the LD_PRELOAD modules. In other cases we rely on
>> explicit symbol bindings/lookups to make sure that everythin has been
>> loaded as expected. But as a minimal fix, this looks okay.
>>
>> Regarding the actual change:
>>
>> LD_PRELOAD="`echo ${common_objpfx}nptl/tst-tls5mod{$aligned,b,c,d}.so \
>> + | sed 's/:$//;s/: /:/g;s/ /:/g'`" ${tst_tls5} >> $logfile \
>> + || fail=1
>>
>> I believe this could be:
>>
>> + LD_PRELOAD="`echo ${common_objpfx}nptl/tst-tls5mod{$aligned,b,c,d}.so \
>> + | tr ' ' :`" ${tst_tls5} >> $logfile || fail=1
>>
>> You could use set -- and IFS, but that's probably too obscure.
>
> At least ld.so manpage documents for LD_PRELOAD:
> "The items of the list can be separated by spaces or colons, and there is no
> support for escaping either separator."
> So, is that not true?
It is true, LD_PRELOAD accepts both ':' and whitespace:
elf/rtld.c
866 unsigned int
867 handle_preload_list (const char *preloadlist, struct link_map *main_map,
868 const char *where)
869 {
[...]
876 /* Split preload list at space/colon. */
877 size_t len = strcspn (p, " :");
[...]
More information about the Libc-alpha
mailing list