Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: execute statically-linked linux files
On Thu, Jan 06, 2022 at 11:38:58PM +0000, RVP wrote:
> On Thu, 6 Jan 2022, Manuel Bouyer wrote:
>
> > the second issue is that it expects /emul/linux/proc/self/fd/4 to be a working
> > symlink, and on NetBSD it's not. Note that with /bin/ls I get something
> > similar:
> > armandeche:/local/armandeche1/tmp#ktrace -i ls -l /proc/self/fd/
> > total 2
> > crw--w---- 1 bouyer tty 5, 0 Jan 6 17:54 0
> > crw--w---- 1 bouyer tty 5, 0 Jan 6 17:54 1
> > crw--w---- 1 bouyer tty 5, 0 Jan 6 17:54 2
> > lr-xr-xr-x 1 root wheel 2048 Jan 6 17:54 3 -> /local/armandeche1/tmp
> >
> > ls: /proc/self/fd//4: Invalid argument
> > lr-xr-xr-x 1 root wheel 0 Jan 6 17:54 4
> >
> > 22875 1 ls CALL readlink(0x7f7fffb98200,0x7f7fffb98610,0x400)
> > 22875 1 ls NAMI "/proc/self/fd//4"
> > 22875 1 ls RET readlink -1 errno 22 Invalid argument
> >
> > If I can trust the ktrace output, fd/4 should point to /etc/spwd.db
> >
> > On linux, strace shows it reading the link from /proc/self/exec, getting back
> >
>
> This 2nd issue I think I can explain: the fd existed at the start of a
> readdir(), but, then is closed sometime when the listing is still in
> progress as in the code below:
It could be it, as when the directory is read, fd 4 is the directory itself.
But at the time of the readlink, fd 4 is definitively open, but points to
another file (I can't see a close(4) between the open("/etc/spwd.db") and the
readlink()).
Anyway, the issue with the linux binary is likely different.
--
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
NetBSD: 26 ans d'experience feront toujours la difference
--
Home |
Main Index |
Thread Index |
Old Index