In rpm permission fixup code, avoid processing symlinks since that would result in the file the link points to being "fixed". Closes: #535586

This commit is contained in:
Joey Hess
2009-07-06 13:35:03 -04:00
parent 78734c0523
commit f456bbf8b6
2 changed files with 5 additions and 2 deletions

View File

@@ -239,6 +239,9 @@ sub unpack {
while (<GETPERMS>) {
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\: $!";
}

2
debian/changelog vendored
View File

@@ -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 <joeyh@debian.org> Wed, 17 Jun 2009 13:06:53 -0400