]> err.no Git - util-linux/commitdiff
libmount: cleanup mangle() usage
authorKarel Zak <kzak@redhat.com>
Mon, 6 Dec 2010 23:08:11 +0000 (00:08 +0100)
committerKarel Zak <kzak@redhat.com>
Mon, 3 Jan 2011 11:28:47 +0000 (12:28 +0100)
Signed-off-by: Karel Zak <kzak@redhat.com>
include/mangle.h
lib/mangle.c
mount/mount_mntent.c
shlibs/mount/src/tab_parse.c

index 76d29bfaebc53513ccd11150710a8d36a9422652..158d07820c01c51d24b591646538213048f3a0dc 100644 (file)
@@ -8,7 +8,7 @@
 extern char *mangle(const char *s);
 
 extern void unmangle_to_buffer(const char *s, char *buf, size_t len);
-extern char *unmangle(const char *s, const char **end);
+extern char *unmangle(const char *s, char **end);
 
 static inline void unmangle_string(char *s)
 {
index 398323a371a1dd44b4b1cffb19156cfd59991622..17ca80951cbff187ce37cb674af19eef7390f0e9 100644 (file)
@@ -69,20 +69,20 @@ void unmangle_to_buffer(const char *s, char *buf, size_t len)
        *buf = '\0';
 }
 
-static inline const char *skip_nonspaces(const char *s)
+static inline char *skip_nonspaces(const char *s)
 {
        while (*s && !(*s == ' ' || *s == '\t'))
                s++;
-       return s;
+       return (char *) s;
 }
 
 /*
  * Returns mallocated buffer or NULL in case of error.
  */
-char *unmangle(const char *s, const char **end)
+char *unmangle(const char *s, char **end)
 {
        char *buf;
-       const char *e;
+       char *e;
        size_t sz;
 
        if (!s)
index 9e31d12fe78b72dffe3b22c4ccb24cfc67ae65ac..a1e34db02481910efe5f3a4fa335784297d4727b 100644 (file)
@@ -27,13 +27,6 @@ skip_spaces(char *s) {
        return s;
 }
 
-static char *
-skip_nonspaces(char *s) {
-       while (*s && !is_space_or_tab(*s))
-               s++;
-       return s;
-}
-
 /*
  * fstat'ing the file and allocating a buffer holding all of it
  * may be a bad idea: if the file is /proc/mounts, the stat
index 16fab89d8543ce74fa591c6beab6d28dc507e31d..d7c27e65f04bbdcc032b38faa2b8e515f81b425b 100644 (file)
@@ -182,40 +182,44 @@ static int mnt_parse_utab_line(mnt_fs *fs, const char *s)
        assert(!fs->target);
 
        while (p && *p) {
+               char *end = NULL;
+
                while (*p == ' ') p++;
                if (!*p)
                        break;
 
                if (!fs->source && !strncmp(p, "SRC=", 4)) {
-                       char *v = unmangle(p + 4, &p);
+                       char *v = unmangle(p + 4, &end);
                        if (!v)
                                goto enomem;
                        if (strcmp(v, "none"))
                                __mnt_fs_set_source_ptr(fs, v);
 
                } else if (!fs->target && !strncmp(p, "TARGET=", 7)) {
-                       fs->target = unmangle(p + 7, &p);
+                       fs->target = unmangle(p + 7, &end);
                        if (!fs->target)
                                goto enomem;
 
                } else if (!fs->root && !strncmp(p, "ROOT=", 5)) {
-                       fs->root = unmangle(p + 5, &p);
+                       fs->root = unmangle(p + 5, &end);
                        if (!fs->root)
                                goto enomem;
 
                } else if (!fs->bindsrc && !strncmp(p, "BINDSRC=", 8)) {
-                       fs->bindsrc = unmangle(p + 8, &p);
+                       fs->bindsrc = unmangle(p + 8, &end);
                        if (!fs->bindsrc)
                                goto enomem;
 
                } else if (!fs->optstr && !strncmp(p, "OPTS=", 5)) {
-                       fs->optstr = unmangle(p + 5, &p);
+                       fs->optstr = unmangle(p + 5, &end);
                        if (!fs->optstr)
                                goto enomem;
                } else {
                        /* unknown variable */
                        while (*p && *p != ' ') p++;
                }
+               if (end)
+                       p = end;
        }
 
        return 0;