mirror of
https://github.com/python/cpython.git
synced 2026-01-29 18:52:38 +00:00
#3967: Correct a crash in count() and find() methods of string-like objects.
For example:
"".count("xxxx", sys.maxint, 0)
Backport of r66631.
This commit is contained in:
parent
4235e6f111
commit
b50f9926ca
4 changed files with 25 additions and 8 deletions
|
|
@ -13,11 +13,10 @@ stringlib_count(const STRINGLIB_CHAR* str, Py_ssize_t str_len,
|
|||
{
|
||||
Py_ssize_t count;
|
||||
|
||||
if (sub_len == 0) {
|
||||
if (str_len < 0)
|
||||
return 0; /* start > len(str) */
|
||||
if (str_len < 0)
|
||||
return 0; /* start > len(str) */
|
||||
if (sub_len == 0)
|
||||
return str_len + 1;
|
||||
}
|
||||
|
||||
count = fastsearch(str, str_len, sub, sub_len, FAST_COUNT);
|
||||
|
||||
|
|
|
|||
|
|
@ -14,11 +14,10 @@ stringlib_find(const STRINGLIB_CHAR* str, Py_ssize_t str_len,
|
|||
{
|
||||
Py_ssize_t pos;
|
||||
|
||||
if (sub_len == 0) {
|
||||
if (str_len < 0)
|
||||
return -1;
|
||||
if (str_len < 0)
|
||||
return -1;
|
||||
if (sub_len == 0)
|
||||
return offset;
|
||||
}
|
||||
|
||||
pos = fastsearch(str, str_len, sub, sub_len, FAST_SEARCH);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue