[dm-devel] multipath-tools/libmultipath parser.c
bmarzins at sourceware.org
bmarzins at sourceware.org
Fri Dec 7 23:57:05 UTC 2007
CVSROOT: /cvs/dm
Module name: multipath-tools
Branch: RHEL5_FC6
Changes by: bmarzins at sourceware.org 2007-12-07 23:57:05
Modified files:
libmultipath : parser.c
Log message:
Fix for bz335021. Multipath not ignores nonascii characters in
/etc/multipath.conf
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/multipath-tools/libmultipath/parser.c.diff?cvsroot=dm&only_with_tag=RHEL5_FC6&r1=1.18&r2=1.18.2.1
--- multipath-tools/libmultipath/parser.c 2006/06/06 18:32:43 1.18
+++ multipath-tools/libmultipath/parser.c 2007/12/07 23:57:03 1.18.2.1
@@ -2,7 +2,7 @@
* Part: Configuration file parser/reader. Place into the dynamic
* data structure representation the conf file
*
- * Version: $Id: parser.c,v 1.18 2006/06/06 18:32:43 bmarzins Exp $
+ * Version: $Id: parser.c,v 1.18.2.1 2007/12/07 23:57:03 bmarzins Exp $
*
* Author: Alexandre Cassen, <acassen at linux-vs.org>
*
@@ -203,7 +203,7 @@
cp = string;
/* Skip white spaces */
- while (isspace((int) *cp) && *cp != '\0')
+ while ((isspace((int) *cp) || !isascii((int) *cp)) && *cp != '\0')
cp++;
/* Return if there is only white spaces */
@@ -241,8 +241,10 @@
in_string = 1;
} else {
- while ((in_string || !isspace((int) *cp)) && *cp
- != '\0' && *cp != '"')
+ while ((in_string ||
+ (!isspace((int) *cp) && isascii((int) *cp) &&
+ *cp != '!' && *cp != '#')) &&
+ *cp != '\0' && *cp != '"')
cp++;
strlen = cp - start;
token = MALLOC(strlen + 1);
@@ -255,7 +257,8 @@
}
vector_set_slot(strvec, token);
- while (isspace((int) *cp) && *cp != '\0')
+ while ((isspace((int) *cp) || !isascii((int) *cp))
+ && *cp != '\0')
cp++;
if (*cp == '\0' || *cp == '!' || *cp == '#')
return strvec;
More information about the dm-devel
mailing list