From f456bbf8b68e0cbb0270264f6ed1ccb3a035d5bc Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 6 Jul 2009 13:35:03 -0400 Subject: [PATCH] In rpm permission fixup code, avoid processing symlinks since that would result in the file the link points to being "fixed". Closes: #535586 --- Alien/Package/Rpm.pm | 5 +++-- debian/changelog | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Alien/Package/Rpm.pm b/Alien/Package/Rpm.pm index e3a0771..52e5832 100644 --- a/Alien/Package/Rpm.pm +++ b/Alien/Package/Rpm.pm @@ -239,6 +239,9 @@ sub unpack { while () { chomp; my ($mode, $owner, $group, $file) = split(/ /, $_, 4); + + next if -l "$workdir/$file"; + $mode = $mode & 07777; # remove filetype my $uid = getpwnam($owner); if (! defined $uid || $uid != 0) { @@ -258,12 +261,10 @@ sub unpack { if (defined($owninfo{$file}) && ($mode & 07000 > 0)) { $modeinfo{$file} = sprintf "%lo", $mode; } - next unless -e "$workdir/$file"; # skip broken links if ($> == 0) { $this->do("chown", "$uid:$gid", "$workdir/$file") || die "failed chowning $file to $uid\:$gid\: $!"; } - next if -l "$workdir/$file"; # skip links $this->do("chmod", sprintf("%lo", $mode), "$workdir/$file") || die "failed changing mode of $file to $mode\: $!"; } diff --git a/debian/changelog b/debian/changelog index 6279abc..1afb8e0 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,8 @@ alien (8.77) UNRELEASED; urgency=low * Don't allow whitespace in package version when parsing debian/changelog. + * In rpm permission fixup code, avoid processing symlinks since that + would result in the file the link points to being "fixed". Closes: #535586 -- Joey Hess Wed, 17 Jun 2009 13:06:53 -0400