Improve check for offset out of range
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 @@
 		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 @@
 		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