summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2012-06-22 15:17:18 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2012-06-22 15:17:18 +0200
commit6ebb2b6b242fc4e66100f6ea64101eb75d2071e9 (patch)
tree286b14500f9e4b62ea991ec9929d2f7b753798b0
parenta396ade9f83f05a65b0a6df3dcbdeb8cfef0c696 (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.c10
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.