From 3d1e146086ec308cb14416ed606bf6160e569878 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Thu, 3 Sep 1992 20:35:01 +0000 Subject: Improve check for offset out of range --- Modules/regexmodule.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Modules/regexmodule.c b/Modules/regexmodule.c index 77daa77..6afe3b7 100644 --- a/Modules/regexmodule.c +++ b/Modules/regexmodule.c @@ -98,6 +98,10 @@ reg_match(re, args) err_clear(); if (!getargs(args, "(s#i)", &buffer, &size, &offset)) return NULL; + if (offset < 0 || offset > size) { + err_setstr(RegexError, "match offset out of range"); + return NULL; + } } re->re_regs_valid = 0; result = re_match(&re->re_patbuf, buffer, size, offset, &re->re_regs); @@ -128,10 +132,10 @@ reg_search(re, args) err_clear(); if (!getargs(args, "(s#i)", &buffer, &size, &offset)) return NULL; - } - if (offset < 0 || offset > size) { - err_setstr(RegexError, "search offset out of range"); - return NULL; + if (offset < 0 || offset > size) { + err_setstr(RegexError, "search offset out of range"); + return NULL; + } } /* NB: In Emacs 18.57, the documentation for re_search[_2] and the implementation don't match: the documentation states that -- cgit v0.12