From 3465138575e1fd0d5892d9b6be1ae232eb873460 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 5 Jul 2016 20:04:27 +0200 Subject: 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 --- test/integration/framework | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'test/integration/framework') diff --git a/test/integration/framework b/test/integration/framework index fe6f82ac9..ea9402d61 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -1886,6 +1886,11 @@ pause() { read IGNORE } +logcurrentarchivedirectory() { + find "${TMPWORKINGDIRECTORY}/aptarchive/dists" -type f | while read line; do + stat --format '%U:%G:%a:%n' "$line" + done | sort > "${TMPWORKINGDIRECTORY}/rootdir/var/log/aptgetupdate.before.lst" +} listcurrentlistsdirectory() { { find rootdir/var/lib/apt/lists -maxdepth 1 -type d | while read line; do @@ -1964,6 +1969,10 @@ aptautotest_aptget_update() { # failure cases can retain partial files and such testempty find "${TMPWORKINGDIRECTORY}/rootdir/var/lib/apt/lists/partial" -mindepth 1 ! \( -name 'lock' -o -name '*.FAILED' \) fi + if [ -s "${TMPWORKINGDIRECTORY}/rootdir/var/log/aptgetupdate.before.lst" ]; then + testfileequal "${TMPWORKINGDIRECTORY}/rootdir/var/log/aptgetupdate.before.lst" \ + "$(find "${TMPWORKINGDIRECTORY}/aptarchive/dists" -type f | while read line; do stat --format '%U:%G:%a:%n' "$line"; done | sort)" + fi } aptautotest_apt_update() { aptautotest_aptget_update "$@"; } aptautotest_aptcdrom_add() { aptautotest_aptget_update "$@"; } -- cgit v1.2.3