suid, suidregister detected all the hard links as files that need to be
registered. It looped, registering the first link, and then removing its
suid bit. This messed up the registration of the other had links, since
their permissions were now changed, leading to unpredictable results. The
fix is to just not remove suid bits until all files have been registered.
$tostrip="/";
}
+ # Register files with suidregister.
foreach $file (@files) {
# Strip leading $tostrip from $file.
$file=~s/^$tostrip//;
autoscript($PACKAGE,"postinst","postinst-suid",$sedstr);
autoscript($PACKAGE,"postrm","postrm-suid","$sedstr");
-
+ }
+
+ # Remove suid bits from files. This is delayed to this point, because
+ # of a situation with hard linked files if it is done earlier.
+ # See changelog for 2.0.77.
+ foreach $file (@files) {
if ( -e "$TMP/$file") {
doit("chmod","a-s","$TMP/$file");
}