[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#910923: $PLATFORM is no longer expanded.



On Sun, Oct 14, 2018 at 10:51 PM Aurelien Jarno <aurelien@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
> aurelien@aurel32.net                 http://www.aurel32.net


Reply to: