Fix bug in strinfo

We can't search for a larger needle inside of a smaller haystack, and
unsigned integer subtraction tends to result in very large numbers
rather than small ones.

Add a check for this case and abort out immediately.

Also add a test case (lifted directly from the docs) that demonstrates
the problem.

Issue discovered and tracked down by Milan Bouchet-Valat
This commit is contained in:
Ryan Lortie
2010-06-19 11:38:57 -04:00
parent e91541bf8c
commit a768953760
3 changed files with 39 additions and 1 deletions

View File

@@ -91,7 +91,8 @@ static const SchemaTest tests[] = {
{ "range-high-default", NULL, "*<default> is not contained in the specified range*" },
{ "range-default-low", NULL, "*<default> is not contained in the specified range*" },
{ "range-default-high", NULL, "*<default> is not contained in the specified range*" },
{ "range-parse-error", NULL, "*invalid character in number*" }
{ "range-parse-error", NULL, "*invalid character in number*" },
{ "from-docs", NULL, NULL }
};
int