Procházet zdrojové kódy

fix system breakage window during make install due to permissions

install.sh was wrongly waiting until after atomically replacing the
old file to set the correct permissions on the new file. in the case
of the dynamic linker, this would cause a dynamic-linked chmod command
not to run (due to missing executable permissions on the dynamic
linker) and thus leave the system in an unusable state.

even if chmod is static-linked, the old behavior had a race window
where dynamic-linked programs could fail to run.
Rich Felker před 10 roky
rodič
revize
7cbb6f70c8
1 změnil soubory, kde provedl 1 přidání a 2 odebrání
  1. 1 2
      tools/install.sh

+ 1 - 2
tools/install.sh

@@ -51,6 +51,7 @@ if test "$symlink" ; then
 ln -s "$1" "$tmp"
 else
 cat < "$1" > "$tmp"
+chmod "$mode" "$tmp"
 fi
 
 mv -f "$tmp" "$2"
@@ -60,6 +61,4 @@ printf "%s: %s is a directory\n" "$0" "$dst" 1>&2
 exit 1
 }
 
-test "$symlink" || chmod "$mode" "$2"
-
 exit 0