aboutsummaryrefslogtreecommitdiff
path: root/coreutils/install.c
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2009-06-15 18:13:51 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2009-06-15 18:13:51 +0200
commit1f363a086779152ab04067e81484b8bb69e4af72 (patch)
tree53f5adb623864722e8c2722d161c1c63ca35875c /coreutils/install.c
parent9517d8ad72c8db8336ea8dba05a64df44688dec8 (diff)
downloadbusybox-1f363a086779152ab04067e81484b8bb69e4af72.tar.gz
install: compat fix for mode of created files.
By Mat Hostetter (mhostetter AT tilera.com) Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'coreutils/install.c')
-rw-r--r--coreutils/install.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/coreutils/install.c b/coreutils/install.c
index 24fb402af..2e604bec7 100644
--- a/coreutils/install.c
+++ b/coreutils/install.c
@@ -129,7 +129,7 @@ int install_main(int argc, char **argv)
if (opts & OPT_PRESERVE_TIME) {
copy_flags |= FILEUTILS_PRESERVE_STATUS;
}
- mode = 0666;
+ mode = 0755; /* GNU coreutils 6.10 compat */
if (opts & OPT_MODE)
bb_parse_mode(mode_str, &mode);
uid = (opts & OPT_OWNER) ? get_ug_id(uid_str, xuname2uid) : getuid();
@@ -175,8 +175,9 @@ int install_main(int argc, char **argv)
}
}
- /* Set the file mode */
- if ((opts & OPT_MODE) && chmod(dest, mode) == -1) {
+ /* Set the file mode (always, not only with -m).
+ * GNU coreutils 6.10 is not affected by umask. */
+ if (chmod(dest, mode) == -1) {
bb_perror_msg("can't change %s of %s", "permissions", dest);
ret = EXIT_FAILURE;
}