aboutsummaryrefslogtreecommitdiff
path: root/bin/gensquashfs/src/options.c
diff options
context:
space:
mode:
Diffstat (limited to 'bin/gensquashfs/src/options.c')
-rw-r--r--bin/gensquashfs/src/options.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/bin/gensquashfs/src/options.c b/bin/gensquashfs/src/options.c
index c8bf64b..6915f20 100644
--- a/bin/gensquashfs/src/options.c
+++ b/bin/gensquashfs/src/options.c
@@ -204,6 +204,8 @@ void process_command_line(options_t *opt, int argc, char **argv)
memset(opt, 0, sizeof(*opt));
sqfs_writer_cfg_init(&opt->cfg);
+ opt->dirscan_flags = DIR_SCAN_KEEP_UID | DIR_SCAN_KEEP_GID |
+ DIR_SCAN_KEEP_MODE;
for (;;) {
i = getopt_long(argc, argv, short_opts, long_opts, NULL);
@@ -214,16 +216,16 @@ void process_command_line(options_t *opt, int argc, char **argv)
case ALL_ROOT_OPTION:
opt->force_uid_value = 0;
opt->force_gid_value = 0;
- opt->force_uid = true;
- opt->force_gid = true;
+ opt->dirscan_flags &= ~DIR_SCAN_KEEP_UID;
+ opt->dirscan_flags &= ~DIR_SCAN_KEEP_GID;
break;
case 'u':
opt->force_uid_value = strtol(optarg, NULL, 0);
- opt->force_uid = true;
+ opt->dirscan_flags &= ~DIR_SCAN_KEEP_UID;
break;
case 'g':
opt->force_gid_value = strtol(optarg, NULL, 0);
- opt->force_gid = true;
+ opt->dirscan_flags &= ~DIR_SCAN_KEEP_GID;
break;
case 'T':
opt->no_tail_packing = true;