* [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.