summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--contrib/tar/src/extract.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/contrib/tar/src/extract.c b/contrib/tar/src/extract.c
index 3dd2fce..e492483 100644
--- a/contrib/tar/src/extract.c
+++ b/contrib/tar/src/extract.c
@@ -129,6 +129,9 @@ extr_init (void)
{
umask (newdir_umask); /* restore the kernel umask */
current_umask = newdir_umask;
+#ifdef __FreeBSD__
+ same_permissions_option++;
+#endif
}
}
@@ -184,7 +187,7 @@ set_mode (char const *file_name, struct stat const *stat_info,
mode = current_stat_info->st_mode ^ invert_permissions;
}
- if (chmod (file_name, mode) != 0)
+ if (chmod (file_name, mode & ~ current_umask) != 0)
chmod_error_details (file_name, mode);
}
OpenPOWER on IntegriCloud