diff options
Diffstat (limited to 'libmount/src')
-rw-r--r-- | libmount/src/fs.c | 7 | ||||
-rw-r--r-- | libmount/src/tab.c | 7 | ||||
-rw-r--r-- | libmount/src/tab_parse.c | 7 |
3 files changed, 6 insertions, 15 deletions
diff --git a/libmount/src/fs.c b/libmount/src/fs.c index a28e66c71..5e4139c6a 100644 --- a/libmount/src/fs.c +++ b/libmount/src/fs.c @@ -304,11 +304,7 @@ int __mnt_fs_set_source_ptr(struct libmnt_fs *fs, char *source) assert(fs); - if (source && !strcmp(source, "none")) { - free(source); - source = NULL; - - } else if (source && strchr(source, '=')) { + if (source && strchr(source, '=')) { if (blkid_parse_tag_string(source, &t, &v) != 0) return -1; } @@ -341,6 +337,7 @@ int mnt_fs_set_source(struct libmnt_fs *fs, const char *source) if (!fs) return -EINVAL; + if (source) { p = strdup(source); if (!p) diff --git a/libmount/src/tab.c b/libmount/src/tab.c index 21b05c705..7dd965458 100644 --- a/libmount/src/tab.c +++ b/libmount/src/tab.c @@ -480,9 +480,8 @@ struct libmnt_fs *mnt_table_find_target(struct libmnt_table *tb, const char *pat * The 2nd, 3rd and 4th iterations are not performed when @tb cache is not * set (see mnt_table_set_cache()). * - * Note that valid source path is NULL; the libmount uses NULL instead of - * "none". The "none" is used in /proc/{mounts,self/mountninfo} for pseudo - * filesystems. + * Note that NULL is a valid source path; it will be replaced with "none". The + * "none" is used in /proc/{mounts,self/mountinfo} for pseudo filesystems. * * Returns: a tab entry or NULL. */ @@ -505,7 +504,7 @@ struct libmnt_fs *mnt_table_find_srcpath(struct libmnt_table *tb, const char *pa p = mnt_fs_get_srcpath(fs); - if (path == NULL && src == NULL) + if (path == NULL && (src == NULL || !strcmp(src, "none"))) return fs; /* source is "none" */ if (path && p && streq_except_trailing_slash(p, path)) return fs; diff --git a/libmount/src/tab_parse.c b/libmount/src/tab_parse.c index 0f618bb32..5bc55ae43 100644 --- a/libmount/src/tab_parse.c +++ b/libmount/src/tab_parse.c @@ -180,12 +180,7 @@ static int mnt_parse_mountinfo_line(struct libmnt_fs *fs, char *s) unmangle_string(fs->vfs_optstr); unmangle_string(fstype); unmangle_string(src); - - if (!strcmp(fs->fs_optstr, "none")) { - free(fs->fs_optstr); - fs->fs_optstr = NULL; - } else - unmangle_string(fs->fs_optstr); + unmangle_string(fs->fs_optstr); rc = __mnt_fs_set_fstype_ptr(fs, fstype); if (!rc) { |