projects
/
privoxy.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' of ssh://git.privoxy.org:23/git/privoxy
[privoxy.git]
/
pcre
/
pcre.c
diff --git
a/pcre/pcre.c
b/pcre/pcre.c
index
1e602df
..
4f8f82c
100644
(file)
--- a/
pcre/pcre.c
+++ b/
pcre/pcre.c
@@
-730,7
+730,7
@@
if (*p == '}') max = min; else
/* Do paranoid checks, then fill in the required variables, and pass back the
pointer to the terminating '}'. */
/* Do paranoid checks, then fill in the required variables, and pass back the
pointer to the terminating '}'. */
-if (min
> 65535
|| max > 65535)
+if (min
< 0 || min > 65535 || max < -1
|| max > 65535)
*errorptr = ERR5;
else
{
*errorptr = ERR5;
else
{
@@
-2660,8
+2660,13
@@
while ((c = *(++ptr)) != 0)
}
else class_charcount++;
ptr++;
}
else class_charcount++;
ptr++;
+ if (*ptr == 0)
+ {
+ *errorptr = ERR6;
+ goto PCRE_ERROR_RETURN;
+ }
}
}
- while (*ptr !=
0 && *ptr !=
']');
+ while (*ptr != ']');
/* Repeats for negated single chars are handled by the general code */
/* Repeats for negated single chars are handled by the general code */
@@
-3018,11
+3023,6
@@
while ((c = *(++ptr)) != 0)
*errorptr = "internal error";
goto PCRE_ERROR_RETURN;
}
*errorptr = "internal error";
goto PCRE_ERROR_RETURN;
}
- if ((int)ptr[1] >= tables_length - ctypes_offset)
- {
- *errorptr = ERR6;
- goto PCRE_ERROR_RETURN;
- }
}
/* This "while" is the end of the "do" above. */
}
/* This "while" is the end of the "do" above. */