]> err.no Git - util-linux/commitdiff
mount: use TAG parsing function from libblkid
authorKarel Zak <kzak@redhat.com>
Fri, 29 May 2009 11:20:47 +0000 (13:20 +0200)
committerKarel Zak <kzak@redhat.com>
Fri, 29 May 2009 11:20:47 +0000 (13:20 +0200)
Signed-off-by: Karel Zak <kzak@redhat.com>
lib/fsprobe.c
mount/fstab.c

index 0f5a4ac09614d69ea9a3ea3d116ce9c4a03fa807..b47de0ec93f12d2f715fb493d6b4a93e6ef7650b 100644 (file)
@@ -47,35 +47,16 @@ open_device(const char *devname)
  * Parses NAME=value, returns -1 on parse error, 0 success. The success is also
  * when the 'spec' doesn't contain name=value pair (because the spec could be
  * a devname too). In particular case the pointer 'name' is set to NULL.
-
- * The result is a new allocated string (the 'name' pointer).
  */
 int
 fsprobe_parse_spec(const char *spec, char **name, char **value)
 {
-       char *vl, *tk, *cp;
-
        *name = NULL;
        *value = NULL;
 
-       if (!(cp = strchr(spec, '=')))
-               return 0;                               /* no name= */
-
-       tk = strdup(spec);
-       vl = tk + (cp - spec);
-       *vl++ = '\0';
-
-       if (*vl == '"' || *vl == '\'') {
-               if (!(cp = strrchr(vl+1, *vl))) {
-                       free(tk);
-                       return -1;                      /* parse error */
-               }
-               vl++;
-               *cp = '\0';
-       }
+       if (strchr(spec, '='))
+               return blkid_parse_tag_string(spec, name, value);
 
-       *name = tk;
-       *value = vl;
        return 0;
 }
 
@@ -96,7 +77,8 @@ fsprobe_get_devname_by_spec(const char *spec)
                else if (!strcmp(name,"UUID"))
                        nspec = fsprobe_get_devname_by_uuid(value);
 
-               free((void *) name);
+               free(name);
+               free(value);
                return nspec;
        }
 
index 13dda871472ccbcc9fbd0a3f82daeb30aed4e8fe..82e90f3a9ca7b59f934fc77492978062b424eae1 100644 (file)
@@ -404,6 +404,7 @@ getfs_by_spec (const char *spec) {
                        mc = getfs_by_uuid (value);
 
                free(name);
+               free(value);
                return mc;
        }