|
|
Message-ID: <20191008173850.GA16318@brightrain.aerifal.cx>
Date: Tue, 8 Oct 2019 13:38:50 -0400
From: Rich Felker <dalias@...c.org>
To: Reiner Herrmann <reiner@...ner-h.de>
Cc: musl@...ts.openwall.com
Subject: Re: realpath after chroot
On Tue, Oct 08, 2019 at 07:24:02PM +0200, Reiner Herrmann wrote:
> Hi,
>
> I noticed that realpath is no longer working after chroot is called.
> With the example from below I get the following output with musl 1.1.23:
>
> # ./a.out
> /
> No such file or directory
>
> With glibc it is working as I would expect:
>
> # ./a.out
> /
> /
This is a documented requirement:
musl aims to avoid imposing filesystem policy; however, the
following minimal set of filesystems dependencies must be met in
order for programs using musl to function correctly:
...
- /proc - must be a mount point for Linux procfs or a symlink to
such. Several functions such as realpath, fexecve, and a number
of the "at" functions added in POSIX 2008 need access to /proc
to function correctly.
Source: https://www.musl-libc.org/doc/1.0.0/manual.html
It's been discussed in more depth in other places. Basically, Linux
makes it impossible to do some things needed for a fully working
C/POSIX implementation without /proc, so we have to treat it as a
"requirement". Some subset of functionality works without it, but no
formal specification of exactly what works is made by musl.
For realpath, indeed it can be implemented in userspace without /proc,
and it may be desirable to do so as a fallback. It might make sense to
do an analysis of "how essential" /proc still is on reasonably recent
kernels; if the need for it is isolated to dynamic linker stuff (rpath
origin, etc.) then it might make a lot of sense to formalize that
/proc is only mandatory for certain things.
Rich
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.