]> git.ipfire.org Git - thirdparty/libtool.git/commitdiff
* ltmain.in: Create temporary directory under a strict umask
authorScott James Remnant <scott@netsplit.com>
Tue, 3 Feb 2004 21:59:38 +0000 (21:59 +0000)
committerScott James Remnant <scott@netsplit.com>
Tue, 3 Feb 2004 21:59:38 +0000 (21:59 +0000)
rather than running chmod afterwards, preventing a race
condition where the directory could be replaced with a symbolic
link in the time between the two commands.

ChangeLog
ltmain.in

index e2d1ed1e7ec89c8e4e6d4e1177e4c9572fbadb07..3ac407be1bcf1157f78973a49edbeda43de0b685 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2004-02-03  Scott James Remnant  <scott@netsplit.com>
+
+       * ltmain.in: Create temporary directory under a strict umask
+       rather than running chmod afterwards, preventing a race
+       condition where the directory could be replaced with a symbolic
+       link in the time between the two commands.
+
 2004-02-03  Paul Eggert  <eggert@twinsun.com>
        Scott James Remnant  <scott@netsplit.com>
 
index cd9d2a8d5c884d88556829cf1ccd45d8c296782b..2f09745a629dcdd39ff05af69524179aa5cb1155 100644 (file)
--- a/ltmain.in
+++ b/ltmain.in
@@ -5673,8 +5673,12 @@ relink_command=\"$relink_command\""
              tmpdir="/tmp"
              test -n "$TMPDIR" && tmpdir="$TMPDIR"
              tmpdir="$tmpdir/libtool-$$"
-             if $mkdir "$tmpdir" && chmod 700 "$tmpdir"; then :
+             save_umask=`umask`
+             umask 0077
+             if $mkdir "$tmpdir"; then
+               umask $save_umask
              else
+               umask $save_umask
                $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
                continue
              fi