[PATCH 1/4] exec: Change uselib(2) IS_SREG() failure to EACCES

Christian Brauner christian.brauner at ubuntu.com
Tue May 19 13:29:31 UTC 2020

On Tue, May 19, 2020 at 07:28:46AM -0500, Eric W. Biederman wrote:
> Andreas Schwab <schwab at linux-m68k.org> writes:
> > On Mai 19 2020, Eric W. Biederman wrote:
> >
> >> I am wondering if there are source trees for libc4 or libc5 around
> >> anywhere that we can look at to see how usage of uselib evolved.
> >
> > libc5 is available from archive.debian.org.
> >
> > http://archive.debian.org/debian-archive/debian/pool/main/libc/libc/libc_5.4.46.orig.tar.gz
> Interesting.
> It appears that the old a.out code to make use of uselib remained in
> the libc5 sources but it was all conditional on the being compiled not
> to use ELF.
> libc5 did provide a wrapper for the uselib system call.
> It appears glibc also provides a wrapper for the uselib system call
> named: uselib at GLIBC_2.2.5.
> I don't see a glibc header file that provides a declaration for uselib
> though.
> So the question becomes did anyone use those glibc wrappers.

The only software I could find was ski, the ia64 instruction set
emulator, which apparently used to make use of this and when glibc
removed they did:

#define uselib(libname) syscall(__NR_uselib, libname)

but they only define it for the sake of the internal syscall list they
maintain so not actively using it. I just checked, ski is available on
Fedora 31 and Fedora has USELIB disabled.
Codesearch on Debian yields no users that actively use the syscall for


More information about the Linux-security-module-archive mailing list