[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