Run File::Find::find with no_chdir=>1

Without no_chdir=>1 the unshared child process in unshare mode needs
read permissions for the directory from which mmdebstrap is executed.
With this change, the current working directory does not need to be
world-readable anymore.

Closes: #1005857
Reported-by: Trent W. Buck <trentbuck@gmail.com>
This commit is contained in:
Johannes Schauer Marin Rodrigues 2022-02-16 10:52:58 +01:00
parent fe87c3a1b8
commit 489e51a2eb
Signed by untrusted user: josch
GPG key ID: F2CBA5C78FBD83E1

View file

@ -4094,7 +4094,10 @@ sub approx_disk_usage {
$installed_size += 1; $installed_size += 1;
} }
}; };
find($scan_installed_size, $directory); # We use no_chdir because otherwise the unshared user has to have read
# permissions for the current working directory when producing an ext2
# image. See https://bugs.debian.org/1005857
find({ wanted => $scan_installed_size, no_chdir => 1 }, $directory);
# because the above is only a heuristic we add 10% extra for good measure # because the above is only a heuristic we add 10% extra for good measure
return int($installed_size * 1.1); return int($installed_size * 1.1);