maintainer-feedback requested: [Bug 217562] emulators/linux_base-c7: strange path truncating when exec'ing in bash scripts

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Sun Mar 5 14:22:55 UTC 2017


Matthieu Volat <mazhe at alkumuna.eu> has reassigned Bugzilla Automation
<bugzilla at FreeBSD.org>'s request for maintainer-feedback to
emulation at FreeBSD.org:
Bug 217562: emulators/linux_base-c7: strange path truncating when exec'ing in
bash scripts
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=217562



--- Description ---
Hi,

I found a strange issue when running linux's bash scripts:

If you try to exec from a shell script (ran from /compat/linux/bin/bash) into
another, the exec'ed script path will be truncated by 8 bytes from the left
(and will obviously result in a failure).

Simple demonstrator, file 1 is "test_linux_exec_bash.sh":

  #!/usr/bin/env bash
  echo $0
  exec ./test_linux_exec_bash_2.sh

file 2 is "test_linux_exec_bash_2.sh":

  #!/usr/bin/env bash
  echo $0

Then the result:

  % /compat/linux/bin/bash ./test_linux_exec_bash.sh
  ./test_linux_exec_bash.sh
  /compat/linux/usr/bin/env: zhe/tmp/test_linux_exec_bash_2.sh: No such file or
directory

This will not happen if the 1st script try to exec into a binary
(/compat/linux/usr/bin/env issue??)

I've ran the demo through ktrace, but it revealed nothing really interesting:
at some point after execing into env, the path is corrupted... valgrind can't
be run on linux binaries, so I did not found anything on that front...

At that point, I'm failing to see what is going wrong here.

Any ideas? Thanks


More information about the freebsd-emulation mailing list