mount: -o parm1 -o parm2 should accumulate
authorDenis Vlasenko <vda.linux@googlemail.com>
Sat, 18 Oct 2008 19:15:57 +0000 (19:15 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Sat, 18 Oct 2008 19:15:57 +0000 (19:15 -0000)
util-linux/mount.c

index 4cc1d4bee9a505271a5002b5dce7865a359913bc..313521aa04d9cf790c3a0d42dd80aaac9f5c5e71 100644 (file)
@@ -1754,7 +1754,7 @@ int mount_main(int argc UNUSED_PARAM, char **argv)
        char *cmdopts = xstrdup("");
        char *fstype = NULL;
        char *storage_path;
-       char *opt_o;
+       llist_t *lst_o = NULL;
        const char *fstabname;
        FILE *fstab;
        int i, j, rc = 0;
@@ -1776,10 +1776,10 @@ int mount_main(int argc UNUSED_PARAM, char **argv)
 
        // Parse remaining options
        // Max 2 params; -v is a counter
-       opt_complementary = "?2" USE_FEATURE_MOUNT_VERBOSE(":vv");
-       opt = getopt32(argv, OPTION_STR, &opt_o, &fstype
+       opt_complementary = "?2o::" USE_FEATURE_MOUNT_VERBOSE(":vv");
+       opt = getopt32(argv, OPTION_STR, &lst_o, &fstype
                        USE_FEATURE_MOUNT_VERBOSE(, &verbose));
-       if (opt & OPT_o) append_mount_options(&cmdopts, opt_o); // -o
+       while (lst_o) append_mount_options(&cmdopts, llist_pop(&lst_o)); // -o
        if (opt & OPT_r) append_mount_options(&cmdopts, "ro"); // -r
        if (opt & OPT_w) append_mount_options(&cmdopts, "rw"); // -w
        argv += optind;