summaryrefslogtreecommitdiff
path: root/apt-private/private-source.h
diff options
context:
space:
mode:
authorDavid Kalnischkies <david@kalnischkies.de>2016-06-02 11:12:39 +0200
committerDavid Kalnischkies <david@kalnischkies.de>2016-06-02 13:35:28 +0200
commit0cfec3ab589c6309bf284438d2148c7742cdaf10 (patch)
tree5de697d58073aa48e3c47fcca321419fd030ac89 /apt-private/private-source.h
parent62600666d21aacea63cece3b4ec64f0ffb40168b (diff)
apt-key: change to / before find to satisfy its CWD needs
First seen on hurd, but easily reproducible on all systems by removing the 'execution' bit from the current working directory and watching some tests (mostly the no-output expecting tests) fail due to find printing: "find: Failed to restore initial working directory: …" Samuel Thibault says in the bugreport: | To do its work, find first records the $PWD, then goes to | /etc/apt/trusted.gpg.d/ to find the files, and then goes back to $PWD. | | On Linux, getting $PWD from the 700 directory happens to work by luck | (POSIX says that getcwd can return [EACCES]: Search permission was denied | for the current directory, or read or search permission was denied for a | directory above the current directory in the file hierarchy). And going | back to $PWD fails, and thus find returns 1, but at least it emitted its | output. | | On Hurd, getting $PWD from the 700 directory fails, and find thus aborts | immediately, without emitting any output, and thus no keyring is found. | | So, to summarize, the issue is that since apt-get update runs find as a | non-root user, running it from a 700 directory breaks find. Solved as suggested by changing to '/' before running find, with some paranoia extra care taking to ensure the paths we give to find are really absolute paths first (they really should, but TMPDIR=. or a similar Dir::Etc::trustedparts setting could exist somewhere in the wild). The commit takes also the opportunity to make these lines slightly less error ignoring and the two find calls using (mostly) the same parameters. Thanks: Samuel Thibault for 'finding' the culprit! Closes: 826043
Diffstat (limited to 'apt-private/private-source.h')
0 files changed, 0 insertions, 0 deletions