All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 4/6] Fix for parsing multipath.conf files without spaces before brackets
@ 2008-12-11 22:10 Benjamin Marzinski
  0 siblings, 0 replies; only message in thread
From: Benjamin Marzinski @ 2008-12-11 22:10 UTC (permalink / raw)
  To: christophe varoqui; +Cc: device-mapper development

There's a bug in bug in the multipath.conf code that keeps multipath from
correctly parsing config files where there is no space between a section name
and the opening bracket. For instance

devices {
	device {
		...
	}
}

works but

devices {
	device{
		...
	}
}

doesn't. This patch makes sure that brackets are the recognized as seperate from
the token that they follow, unless they are part of a quoted string.

Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
---
 libmultipath/parser.c |   12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

Index: multipath-tools-081203/libmultipath/parser.c
===================================================================
--- multipath-tools-081203.orig/libmultipath/parser.c
+++ multipath-tools-081203/libmultipath/parser.c
@@ -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);

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2008-12-11 22:10 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-12-11 22:10 [PATCH 4/6] Fix for parsing multipath.conf files without spaces before brackets Benjamin Marzinski

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.