Fix for parsing multipath.conf files without spaces before brackets
[multipath-tools/.git] / libmultipath / parser.c
index 070745d..f1fdeb8 100644 (file)
@@ -239,12 +239,20 @@ alloc_strvec(char *string)
                                in_string = 0;
                        else
                                in_string = 1;
+               } else if (!in_string && (*cp == '{' || *cp == '}')) {
+                       token = MALLOC(2);
+
+                       if (!token)
+                               goto out;
 
+                       *(token) = *cp;
+                       *(token + 1) = '\0';
+                       cp++;
                } else {
                        while ((in_string ||
                                (!isspace((int) *cp) && isascii((int) *cp) &&
-                                *cp != '!' && *cp != '#')) &&
-                              *cp != '\0' && *cp != '"')
+                                *cp != '!' && *cp != '#' && *cp != '{' &&
+                                *cp != '}')) && *cp != '\0' && *cp != '"')
                                cp++;
                        strlen = cp - start;
                        token = MALLOC(strlen + 1);