mirror of
https://github.com/python/cpython.git
synced 2025-09-27 02:39:58 +00:00
Improve check for offset out of range
This commit is contained in:
parent
f2c8beba0b
commit
3d1e146086
1 changed files with 8 additions and 4 deletions
|
@ -98,6 +98,10 @@ reg_match(re, args)
|
||||||
err_clear();
|
err_clear();
|
||||||
if (!getargs(args, "(s#i)", &buffer, &size, &offset))
|
if (!getargs(args, "(s#i)", &buffer, &size, &offset))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
if (offset < 0 || offset > size) {
|
||||||
|
err_setstr(RegexError, "match offset out of range");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
re->re_regs_valid = 0;
|
re->re_regs_valid = 0;
|
||||||
result = re_match(&re->re_patbuf, buffer, size, offset, &re->re_regs);
|
result = re_match(&re->re_patbuf, buffer, size, offset, &re->re_regs);
|
||||||
|
@ -128,11 +132,11 @@ reg_search(re, args)
|
||||||
err_clear();
|
err_clear();
|
||||||
if (!getargs(args, "(s#i)", &buffer, &size, &offset))
|
if (!getargs(args, "(s#i)", &buffer, &size, &offset))
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
|
||||||
if (offset < 0 || offset > size) {
|
if (offset < 0 || offset > size) {
|
||||||
err_setstr(RegexError, "search offset out of range");
|
err_setstr(RegexError, "search offset out of range");
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
/* NB: In Emacs 18.57, the documentation for re_search[_2] and
|
/* NB: In Emacs 18.57, the documentation for re_search[_2] and
|
||||||
the implementation don't match: the documentation states that
|
the implementation don't match: the documentation states that
|
||||||
|range| positions are tried, while the code tries |range|+1
|
|range| positions are tried, while the code tries |range|+1
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue