mount: do not pass "comment=ANYTHING" option to kernel. Closes 5240

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2012-06-22 15:17:18 +02:00
parent a396ade9f8
commit 6ebb2b6b24

View File

@ -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.