On Sun, Oct 14, 2018 at 10:51 PM Aurelien Jarno <aurel...@aurel32.net> wrote: > > control: severity -1 normal > control: retitle -1 libc6: broken support for curly braces DST > > On 2018-10-13 16:13, Roman Lebedev wrote: > > Source: glibc > > Version: 2.27-6 > > Severity: important > > > > Reproduction: > > $ strace -ELD_PRELOAD='/sss/${PLATFORM}/dddd' -s300 /bin/cat > > execve("/bin/cat", ["/bin/cat"], 0x55ddc6b820f0 /* 64 vars */) = 0 > > brk(NULL) = 0x56046d9c1000 > > access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or > > directory) > > readlink("/proc/self/exe", "/bin/cat", 4096) = 8 > > openat(AT_FDCWD, "/sss/x86_64/dddd", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No > > such file or directory) Hm actually wait, i think i'm confused here. Both the ${PLATFORM} and $PLATFORM seem to expand just fine.
$ strace -ELD_PRELOAD='/sss/${PLATFORM}/dddd' -s300 /bin/cat | grep PLATFORM ... openat(AT_FDCWD, "/sss/x86_64/dddd", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) writev(2, [{iov_base="ERROR: ld.so: object '", iov_len=22}, {iov_base="/sss/${PLATFORM}/dddd", iov_len=21}, {iov_base="' from ", iov_len=7}, {iov_base="LD_PRELOAD", iov_len=10}, {iov_base=" cannot be preloaded (", iov_len=22}, {iov_base="cannot open shared object file", iov_len=30}, {iov_base="): ignored.\n", iov_len=12}], 7ERROR: ld.so: object '/sss/${PLATFORM}/dddd' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored. ) = 124 $ strace -ELD_PRELOAD='/sss/$PLATFORM/dddd' -s300 /bin/cat | grep PLATFORM ... openat(AT_FDCWD, "/sss/x86_64/dddd", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) writev(2, [{iov_base="ERROR: ld.so: object '", iov_len=22}, {iov_base="/sss/$PLATFORM/dddd", iov_len=19}, {iov_base="' from ", iov_len=7}, {iov_base="LD_PRELOAD", iov_len=10}, {iov_base=" cannot be preloaded (", iov_len=22}, {iov_base="cannot open shared object file", io v_len=30}, {iov_base="): ignored.\n", iov_len=12}], 7ERROR: ld.so: object '/sss/$PLATFORM/dddd' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored. ) = 122 It clearly expanded PLATFORM to x86_64 in both cases, do you agree? So whatever i'm seeing is something else, might be caused by docker. Roman. > > writev(2, [{iov_base="ERROR: ld.so: object '", iov_len=22}, > > {iov_base="/sss/${PLATFORM}/dddd", iov_len=21}, {iov_base="' from ", > > iov_len=7}, {iov_base="LD_PRELOAD", iov_len=10}, {iov_base=" cannot be > > preloaded (", iov_len=22}, {iov_base="cannot open shared object file", > > iov_len=30}, {iov_base="): ignored.\n", iov_len=12}], 7ERROR: ld.so: object > > '/sss/${PLATFORM}/dddd' from LD_PRELOAD cannot be preloaded (cannot open > > shared object file): ignored. > > ) = 124 > > > > So $PLATFORM is not expanded. This is a regression from 2.24 > > Actually ${PLATFORM} is not expanded. If you try with $PLATFORM you will > see it is correctly expanded. > > > According to > > https://sourceware.org/bugzilla/show_bug.cgi?id=22299 > > it *should* be fixed in 2.27, but it is clerly still reproducible in > > debian testing/sid. > > This is a different bug, as shown above the problem is that support for > curly braces does not work anymore. > > > This is causing the following problem for me: > > https://community.sonarsource.com/t/sonarqube-c-ubuntu-build-wrapper-ld-preload-error/300/2 > > The workaround is to use $PLATFORM instead of ${PLATFORM}. > > Aurelien > > -- > Aurelien Jarno GPG: 4096R/1DDD8C9B > aurel...@aurel32.net http://www.aurel32.net