Unverified Commit 6b3dccea by Christian Brauner Committed by GitHub

Merge pull request #3213 from blenk92/fix-mount-parsing

config: Fix parsing of mount options
parents 75001299 85c2de39
...@@ -1853,11 +1853,15 @@ static void parse_mntopt(char *opt, unsigned long *flags, char **data, size_t si ...@@ -1853,11 +1853,15 @@ static void parse_mntopt(char *opt, unsigned long *flags, char **data, size_t si
{ {
struct mount_opt *mo; struct mount_opt *mo;
/* If '=' is contained in opt, the option must go into data. */
if (!strchr(opt, '=')) {
/* If opt is found in mount_opt, set or clear flags. /* If opt is found in mount_opt, set or clear flags.
* Otherwise append it to data. */ * Otherwise append it to data. */
size_t opt_len = strlen(opt);
for (mo = &mount_opt[0]; mo->name != NULL; mo++) { for (mo = &mount_opt[0]; mo->name != NULL; mo++) {
if (strncmp(opt, mo->name, strlen(mo->name)) == 0) { size_t mo_name_len = strlen(mo->name);
if (opt_len == mo_name_len && strncmp(opt, mo->name, mo_name_len) == 0) {
if (mo->clear) if (mo->clear)
*flags &= ~mo->flag; *flags &= ~mo->flag;
else else
...@@ -1865,6 +1869,7 @@ static void parse_mntopt(char *opt, unsigned long *flags, char **data, size_t si ...@@ -1865,6 +1869,7 @@ static void parse_mntopt(char *opt, unsigned long *flags, char **data, size_t si
return; return;
} }
} }
}
if (strlen(*data)) if (strlen(*data))
(void)strlcat(*data, ",", size); (void)strlcat(*data, ",", size);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment