Sophie

Sophie

distrib > Mandriva > 2010.2 > i586 > media > main-updates-src > by-pkgid > 3e868efd2ef04149ef903c871397f5b8 > files > 12

dhcp-4.1.2-0.6mdv2010.2.src.rpm

diff -Naurp dhcp-4.2.1-P1/common/dhcp-eval.5 dhcp-4.2.1-P1.oden/common/dhcp-eval.5
--- dhcp-4.2.1-P1/common/dhcp-eval.5	2010-07-06 19:03:11.000000000 +0000
+++ dhcp-4.2.1-P1.oden/common/dhcp-eval.5	2011-12-08 11:31:44.000000000 +0000
@@ -133,8 +133,8 @@ extended regex(7) matching of the values
 true if \fIdata-expression-1\fR matches against the regular expression
 evaluated by \fIdata-expression-2\fR, or false if it does not match or
 encounters some error.  If either the left-hand side or the right-hand side 
-are null, the result is also false.  The \fB~~\fR operator differs from the
-\fB~=\fR operator in that it is case-insensitive.
+are null or empty strings, the result is also false.  The \fB~~\fR operator
+differs from the \fB~=\fR operator in that it is case-insensitive.
 .RE
 .PP
 .I boolean-expression-1 \fBand\fR \fIboolean-expression-2\fR
diff -Naurp dhcp-4.2.1-P1/common/tree.c dhcp-4.2.1-P1.oden/common/tree.c
--- dhcp-4.2.1-P1/common/tree.c	2009-11-20 01:49:01.000000000 +0000
+++ dhcp-4.2.1-P1.oden/common/tree.c	2011-12-08 11:31:38.000000000 +0000
@@ -1120,6 +1120,7 @@ int evaluate_boolean_expression (result,
 		*result = 0;
 		memset(&re, 0, sizeof(re));
 		if (bleft && bright &&
+		    (left.data != NULL) && (right.data != NULL) &&
         	    (regcomp(&re, (char *)right.data, regflags) == 0) &&
 		    (regexec(&re, (char *)left.data, (size_t)0, NULL, 0) == 0))
 				*result = 1;