fix bug #128401 affecting regexp quantifiers Daniel

* config.h.in configure.in xmlregexp.c: fix bug #128401 affecting
  regexp quantifiers
Daniel
diff --git a/ChangeLog b/ChangeLog
index 4607de1..0b4c587 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Wed Dec  3 13:10:08 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+	* config.h.in configure.in xmlregexp.c: fix bug #128401 affecting
+	  regexp quantifiers
+
 Tue Dec  2 23:29:56 CET 2003 Daniel Veillard <daniel@veillard.com>
 
 	* pattern.c include/libxml/pattern.h: adding the pattern node
diff --git a/config.h.in b/config.h.in
index 6ce2607..915ef0c 100644
--- a/config.h.in
+++ b/config.h.in
@@ -107,6 +107,9 @@
 /* Have compression library */
 #undef HAVE_LIBZ
 
+/* Define to 1 if you have the <limits.h> header file. */
+#undef HAVE_LIMITS_H
+
 /* Define to 1 if you have the `localtime' function. */
 #undef HAVE_LOCALTIME
 
diff --git a/configure.in b/configure.in
index edfd418..fd6ac34 100644
--- a/configure.in
+++ b/configure.in
@@ -111,6 +111,7 @@
 AC_CHECK_HEADERS([ieeefp.h])
 AC_CHECK_HEADERS([nan.h])
 AC_CHECK_HEADERS([math.h])
+AC_CHECK_HEADERS([limits.h])
 AC_CHECK_HEADERS([fp_class.h])
 AC_CHECK_HEADERS([float.h])
 AC_CHECK_HEADERS([stdlib.h])
diff --git a/xmlregexp.c b/xmlregexp.c
index a26b8bb..f42b38c 100644
--- a/xmlregexp.c
+++ b/xmlregexp.c
@@ -21,12 +21,20 @@
 
 #include <stdio.h>
 #include <string.h>
+#ifdef HAVE_LIMITS_H
+#include <limits.h>
+#endif
+
 #include <libxml/tree.h>
 #include <libxml/parserInternals.h>
 #include <libxml/xmlregexp.h>
 #include <libxml/xmlautomata.h>
 #include <libxml/xmlunicode.h>
 
+#ifndef INT_MAX
+#define INT_MAX 123456789 /* easy to flag and big enough for our needs */
+#endif
+
 /* #define DEBUG_REGEXP_GRAPH  */
 /* #define DEBUG_REGEXP_EXEC */
 /* #define DEBUG_PUSH */
@@ -3749,9 +3757,16 @@
 	    min = cur;
 	if (CUR == ',') {
 	    NEXT;
-	    cur = xmlFAParseQuantExact(ctxt);
-	    if (cur >= 0)
-		max = cur;
+	    if (CUR == '}')
+	        max = INT_MAX;
+	    else {
+	        cur = xmlFAParseQuantExact(ctxt);
+	        if (cur >= 0)
+		    max = cur;
+		else {
+		    ERROR("Improper quantifier");
+		}
+	    }
 	}
 	if (CUR == '}') {
 	    NEXT;