The following commit has been merged in the master branch:
commit 84405fa5688ff30622bc4b1c8fec1bbb7b4fc1a8
Author: Niels Thykier <[email protected]>
Date:   Sun Oct 9 14:24:46 2011 +0200

    Fixed a test regression caused by the last commit
    
    coll/unpacked now properly copes with symlinks that point inside
    the package.
    
    Signed-off-by: Niels Thykier <[email protected]>

diff --git a/collection/debfiles b/collection/debfiles
index c468435..6fc4bdf 100755
--- a/collection/debfiles
+++ b/collection/debfiles
@@ -37,8 +37,17 @@ if (-e 'debfiles') {
         or fail('cannot rm old debfiles directory');
 }
 
-fail ("debian dir for $pkg is a symlink")
-    if -l 'unpacked/debian';
+if ( -l 'unpacked/debian' ) {
+    require Cwd;
+    my $target = Cwd::abs_path ('unpacked/debian');
+    my $ud = Cwd::abs_path ('unpacked');
+    fail ("cannot resolve debian directory symlink in $pkg: $!") unless 
$target;
+    fail ("cannot resolve unpacked dir for $pkg: $!") unless $ud;
+    # We need the the trailing slash on $ud to ensure $target is a subdir of 
$ud.  However
+    # if $target eq $ud, we also need a trailing slash on $target for the 
comparision to
+    # be successful
+    fail ("debian directory in $pkg is an unsafe symlink!") unless "$target/" 
=~ m,^$ud/,;
+}
 
 # Copy the whole debian directory
 copy_dir('unpacked/debian/', 'debfiles')

-- 
Debian package checker


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]
Archive: http://lists.debian.org/[email protected]

Reply via email to