changeset 989:c68ed1182a64

(mode_create_from_ref): Don't use umask. Don't use MODE_X_IF_ANY_X.
author Jim Meyering <jim@meyering.net>
date Tue, 29 Jul 1997 03:03:49 +0000
parents ba13cef00d11
children a395a7c2c4bd
files lib/modechange.c
diffstat 1 files changed, 4 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/lib/modechange.c
+++ b/lib/modechange.c
@@ -236,11 +236,8 @@
   return MODE_INVALID;
 }
 
-/* Return a file mode change operation created from the reference REF_FILE
-   Don't affect special permissions, use umask, affect 'x' if any 'x', for
-   maximum security
-
-   Return MODE_BAD_REFERENCE if REF_FILE can't be accessed */
+/* Return a file mode change operation that sets permissions to match those
+   of REF_FILE.  Return MODE_BAD_REFERENCE if REF_FILE can't be accessed.  */
 
 struct mode_change *
 mode_create_from_ref (ref_file)
@@ -249,7 +246,6 @@
   struct mode_change *change;	/* the only change element */
   struct stat ref_stats;
   int i;
-  int umask_value;
 
   if (stat (ref_file, &ref_stats))
     return MODE_BAD_REFERENCE;
@@ -259,12 +255,9 @@
   if (change == NULL)
     return MODE_MEMORY_EXHAUSTED;
 
-  umask_value = umask (0);
-  umask (umask_value);
-
   change->op = '=';
-  change->flags = MODE_X_IF_ANY_X;
-  change->affected = 0777 & ~umask_value;
+  change->flags = 0;
+  change->affected = 07777;
   change->value = ref_stats.st_mode;
   change->next = NULL;