Fix #8530: Prevent stringlib fastsearch from reading beyond the front of an array.

This commit is contained in:
Florent Xicluna 2010-08-08 22:07:16 +00:00
parent bddc9fe22b
commit eb6f3ead00
2 changed files with 5 additions and 2 deletions

View File

@ -12,6 +12,9 @@ What's New in Python 3.2 Alpha 2?
Core and Builtins
-----------------
- Issue #8530: Prevent stringlib fastsearch from reading beyond the front
of an array.
- Issue #5319: Print an error if flushing stdout fails at interpreter
shutdown.

View File

@ -140,13 +140,13 @@ fastsearch(const STRINGLIB_CHAR* s, Py_ssize_t n,
/* got a match! */
return i;
/* miss: check if previous character is part of pattern */
if (!STRINGLIB_BLOOM(mask, s[i-1]))
if (i > 0 && !STRINGLIB_BLOOM(mask, s[i-1]))
i = i - m;
else
i = i - skip;
} else {
/* skip: check if previous character is part of pattern */
if (!STRINGLIB_BLOOM(mask, s[i-1]))
if (i > 0 && !STRINGLIB_BLOOM(mask, s[i-1]))
i = i - m;
}
}