Package: fakechroot / 2.20.1+ds-15

Metadata

Package Version Patches format
fakechroot 2.20.1+ds-15 3.0 (quilt)

Patch series

view the series file
Patch File delta Description
0001 New statx function.patch | (download)

configure.ac | 1 1 + 0 - 0 !
src/Makefile.am | 1 1 + 0 - 0 !
src/statx.c | 44 44 + 0 - 0 !
3 files changed, 46 insertions(+)

 [patch 01/12] new `statx` function


0002 src lckpwdf.c create an empty etc .pwd.lock.patch | (download)

src/lckpwdf.c | 25 25 + 0 - 0 !
1 file changed, 25 insertions(+)

 [patch 02/12] src/lckpwdf.c: create an empty /etc/.pwd.lock


0003 check return value of dladdr.patch | (download)

src/dladdr.c | 12 7 + 5 - 0 !
test/Makefile.am | 1 1 + 0 - 0 !
test/src/Makefile.am | 1 1 + 0 - 0 !
test/src/test-dladdr.c | 14 14 + 0 - 0 !
test/t/dladdr.t | 14 14 + 0 - 0 !
5 files changed, 37 insertions(+), 5 deletions(-)

 [patch 03/12] check return value of dladdr

https://github.com/dex4er/fakechroot/pull/70

0004 tmpnam.c fix heap overflow.patch | (download)

src/tmpnam.c | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 [patch 04/12] tmpnam.c: fix heap overflow

https://github.com/dex4er/fakechroot/pull/85

Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>

0005 declare missing bufs remove ver from lstat.patch | (download)

src/lstat.c | 8 5 + 3 - 0 !
src/lstat.h | 2 1 + 1 - 0 !
src/mknod.c | 2 2 + 0 - 0 !
src/stat.c | 2 2 + 0 - 0 !
src/stat64.c | 2 2 + 0 - 0 !
5 files changed, 12 insertions(+), 4 deletions(-)

 [patch 05/12] declare missing bufs, remove ver from lstat

https://github.com/dex4er/fakechroot/pull/85

Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>

0006 fix glibc 2.33 compatibility.patch | (download)

configure.ac | 20 20 + 0 - 0 !
src/ftw.c | 2 1 + 1 - 0 !
src/ftw64.c | 14 11 + 3 - 0 !
src/libfakechroot.h | 15 15 + 0 - 0 !
src/lstat.c | 2 1 + 1 - 0 !
src/lstat.h | 2 1 + 1 - 0 !
src/lstat64.c | 2 1 + 1 - 0 !
src/mknod.c | 2 1 + 1 - 0 !
src/mknodat.c | 2 1 + 1 - 0 !
src/stat.c | 2 1 + 1 - 0 !
src/stat64.c | 2 1 + 1 - 0 !
11 files changed, 54 insertions(+), 11 deletions(-)

 [patch 06/12] fix glibc 2.33+ compatibility

https://github.com/dex4er/fakechroot/pull/85

Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>

0007 wrap fstatat and fstatat64.patch | (download)

configure.ac | 2 2 + 0 - 0 !
src/Makefile.am | 2 2 + 0 - 0 !
src/fstatat.c | 42 42 + 0 - 0 !
src/fstatat64.c | 43 43 + 0 - 0 !
4 files changed, 89 insertions(+)

 [patch 07/12] wrap fstatat and fstatat64

https://github.com/dex4er/fakechroot/pull/86

0008 Wrap all functions accessing etc passwd etc group an.patch | (download)

src/Makefile.am | 1 1 + 0 - 0 !
src/passwd.c | 296 296 + 0 - 0 !
test/Makefile.am | 1 1 + 0 - 0 !
test/src/Makefile.am | 1 1 + 0 - 0 !
test/src/test-passwd.c | 28 28 + 0 - 0 !
test/t/passwd.t | 23 23 + 0 - 0 !
test/testtree.sh | 6 6 + 0 - 0 !
7 files changed, 356 insertions(+)

 [patch 08/12] wrap all functions accessing /etc/passwd, /etc/group
 and /etc/shadow

Starting with glibc 2.32 the compat nss module for getpwnam calls
__nss_files_fopen (which is a GLIBC_PRIVATE symbol provided by glibc)
instead of fopen (see 299210c1fa67e2dfb564475986fce11cd33db9ad). This
leads to getpwnam calls accessing /etc/passwd from *outside* the chroot
and as a result programs like adduser do not work correctly anymore
under fakechroot.

Starting with glibc 2.34 the __nss_files_fopen was moved from nss to
libc.so and thus wrapping it with LD_PRELOAD has no affect anymore
(see 6212bb67f4695962748a5981e1b9fea105af74f6).

So now we also wrap all the functions accessing /etc/passwd, /etc/group
and /etc/shadow. This solution will ignore NIS, LDAP or other local files
as potentially configured in /etc/nsswitch.conf.

https://github.com/dex4er/fakechroot/pull/98

0009 add test t rm.t and amend test t touch.t with no der.patch | (download)

test/Makefile.am | 1 1 + 0 - 0 !
test/t/rm.t | 25 25 + 0 - 0 !
test/t/touch.t | 17 15 + 2 - 0 !
3 files changed, 41 insertions(+), 2 deletions(-)

 [patch 09/12] add test/t/rm.t and amend test/t/touch.t with
 --no-dereference test

 - test/t/rm.t will fail under glibc 2.34 unless __stat64_time64 functions are
   wrapped
 - test/t/touch.t will fail under glibc 2.34 unless __lstat64_time64 is
   wrapped

0010 support glibc 2.34 by wrapping __ f l stat at 64_tim.patch | (download)

configure.ac | 6 6 + 0 - 0 !
src/Makefile.am | 6 6 + 0 - 0 !
src/__fstatat64_time64.c | 44 44 + 0 - 0 !
src/__lstat64_time64.c | 49 49 + 0 - 0 !
src/__stat64_time64.c | 47 47 + 0 - 0 !
src/__utime64.c | 41 41 + 0 - 0 !
src/__utimensat64.c | 42 42 + 0 - 0 !
src/__utimes64.c | 42 42 + 0 - 0 !
8 files changed, 277 insertions(+)

 [patch 10/12] support glibc 2.34 by wrapping
 __{f,l,}stat{at,}64_time64 and__utime{nsat,s,}64

These functions are only wrapped on 32 bit platforms like i386, armel or
armhf. On 64 bit platforms, the corresponding HAVE_* macros will not be
defined.

 * __fstatat64_time64
 * __lstat64_time64
 * __stat64_time64
 * __utime64
 * __utimensat64
 * __utimes64

0011 also investigate .interp section for architectures t.patch | (download)

scripts/ldd.fakechroot.pl | 33 33 + 0 - 0 !
test/Makefile.am | 1 1 + 0 - 0 !
test/t/ldd_interp.t | 26 26 + 0 - 0 !
3 files changed, 60 insertions(+)

 [patch 11/12] also investigate .interp section for architectures that
 do not list the linker in `objdump -p` like mips64el, ppc64el and s390x


0012 test touch.inc.sh use testtree variable.patch | (download)

test/touch.inc.sh | 4 2 + 2 - 0 !
1 file changed, 2 insertions(+), 2 deletions(-)

 [patch 12/12] test/touch.inc.sh: use testtree variable

 - the variable is set in test/common.inc.sh and includes `basename $0 .t`
 - otherwise test/t/touch.t will always get skipped