[Libguestfs] Further nbdkit patches for Haiku
Eric Blake
eblake at redhat.com
Tue Nov 13 15:16:33 UTC 2018
On 11/13/18 7:40 AM, Richard W.M. Jones wrote:
>> (I think the error message is "incorrect ELF header") could be
>> something to do with the way we use shebangs (#!). IIRC this also
>> fails on FreeBSD so probably nbdkit is doing something which is not
>> correct POSIX.
>
POSIX says that #! shebangs are undefined behavior. You're at the mercy
of each operating system, because there is no portable solution across
all systems.
> I reproduced this on FreeBSD. The path used in the tests is indeed
> relative:
>
> #!../nbdkit
>
> However replacing this with an absolute path did *not* fix the issue.
> FreeBSD seems to not like running a shell script from a shebang,
> probably because this is (was?) insecure. However because of the way
> our test harness works we really need to run the shell script. As
> there seems to be no simple way to fix this for now, I left the bug in
> 1.8.0.
Can you use '#!/bin/sh /path/to/nbdkit'? That way, the shebang is
running a binary (not a script), where the binary in turn runs the
desired script? Or does that run into other limitations (for example,
#! can only portably used with exactly one argument after the
interpreter name; BSD and more recently coreutils have added 'env -S' to
work around that limitation, although it is not yet widespread
portable). But yes, I do seem to recall that #! must point to a binary
interpreter rather than a script of an unspecified language (the fact
that Linux will happily run a script under /bin/sh is not universal).
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org
More information about the Libguestfs
mailing list