diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2012-06-22 15:17:18 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2012-06-22 15:17:18 +0200 |
commit | 6ebb2b6b242fc4e66100f6ea64101eb75d2071e9 (patch) | |
tree | 286b14500f9e4b62ea991ec9929d2f7b753798b0 | |
parent | a396ade9f83f05a65b0a6df3dcbdeb8cfef0c696 (diff) |
mount: do not pass "comment=ANYTHING" option to kernel. Closes 5240
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | util-linux/mount.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/util-linux/mount.c b/util-linux/mount.c index 95dee18ec..b6c94d7ba 100644 --- a/util-linux/mount.c +++ b/util-linux/mount.c @@ -218,6 +218,7 @@ static const int32_t mount_options[] = { IF_DESKTOP(/* "user" */ MOUNT_USERS,) IF_DESKTOP(/* "users" */ MOUNT_USERS,) /* "_netdev" */ 0, + IF_DESKTOP(/* "comment" */ 0,) /* systemd uses this in fstab */ ) IF_FEATURE_MOUNT_FLAGS( @@ -275,6 +276,7 @@ static const char mount_option_str[] = IF_DESKTOP("user\0") IF_DESKTOP("users\0") "_netdev\0" + IF_DESKTOP("comment\0") /* systemd uses this in fstab */ ) IF_FEATURE_MOUNT_FLAGS( // vfs flags @@ -465,7 +467,11 @@ static unsigned long parse_mount_options(char *options, char **unrecognized) // FIXME: use hasmntopt() // Find this option in mount_options for (i = 0; i < ARRAY_SIZE(mount_options); i++) { - if (strcasecmp(option_str, options) == 0) { + /* We support "option=" match for "comment=" thingy */ + unsigned opt_len = strlen(option_str); + if (strncasecmp(option_str, options, opt_len) == 0 + && (options[opt_len] == '\0' || options[opt_len] == '=') + ) { unsigned long fl = mount_options[i]; if ((long)fl < 0) flags &= fl; @@ -473,7 +479,7 @@ static unsigned long parse_mount_options(char *options, char **unrecognized) flags |= fl; goto found; } - option_str += strlen(option_str) + 1; + option_str += opt_len + 1; } // We did not recognize this option. // If "unrecognized" is not NULL, append option there. |