diff options
author | David Kalnischkies <david@kalnischkies.de> | 2016-07-05 20:04:27 +0200 |
---|---|---|
committer | David Kalnischkies <david@kalnischkies.de> | 2016-07-06 02:25:51 +0200 |
commit | 3465138575e1fd0d5892d9b6be1ae232eb873460 (patch) | |
tree | 07f541a2c958f8b67b392da360bb38aa9fd9c59d /test/integration/test-apt-update-file | |
parent | 68151307d42ed64cd6258f94a0d748abe9efb8e0 (diff) |
don't change owner/perms/times through file:// symlinks
If we have files in partial/ from a previous invocation or similar such
those could be symlinks created by file:// sources. The code is
expecting only real files through and happily changes owner,
modification times and permission on the file the symlink points to
which tend to be files we have no business in touching in this way.
Permissions of symlinks shouldn't be changed, changing owner is usually
pointless to, but just to be sure we pick the easy way out and use
lchown, check for symlinks before chmod/utimes.
Reported-By: Mattia Rizzolo on IRC
Diffstat (limited to 'test/integration/test-apt-update-file')
-rwxr-xr-x | test/integration/test-apt-update-file | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/test/integration/test-apt-update-file b/test/integration/test-apt-update-file index 20f604695..8da4ec35b 100755 --- a/test/integration/test-apt-update-file +++ b/test/integration/test-apt-update-file @@ -18,6 +18,7 @@ insertpackage 'unstable' 'bar' 'amd64' '1' insertsource 'unstable' 'foo' 'all' '1' setupaptarchive --no-update +logcurrentarchivedirectory # ensure the archive is not writable addtrap 'prefix' 'chmod 755 aptarchive/dists/unstable/main/binary-all;' @@ -37,8 +38,11 @@ if [ "$(id -u)" = '0' ]; then rm -rf rootdir/var/lib/apt/lists chmod 500 aptarchive/dists/ testsuccesswithnotice aptget update - exit + chmod 755 aptarchive/dists/ +else + testsuccess aptget update fi +mv rootdir/var/lib/apt/lists/_* rootdir/var/lib/apt/lists/partial chmod 555 aptarchive/dists/unstable/main/binary-all testsuccess aptget update -o Debug::pkgAcquire::Worker=1 cp -a rootdir/tmp/testsuccess.output rootdir/tmp/update.output |