Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit7e42007

Browse files
committed
Make pg_regexec() robust against out-of-range search_start.
If search_start is greater than the length of the string, we should justreturn REG_NOMATCH immediately. (Note that the equality case should*not* be rejected, since the pattern might be able to match zerocharacters.) This guards various internal assumptions that the min of arange of string positions is not more than the max. Violation of thoseassumptions could allow an attempt to fetch string[search_start-1],possibly causing a crash.Jaime Casanova pointed out that this situation is reachable with thenew regexp_xxx functions that accept a user-specified start position.I don't believe it's reachable via any in-core call site in v14 andbelow. However, extensions could possibly call pg_regexec with anout-of-range search_start, so let's back-patch the fix anyway.Discussion:https://postgr.es/m/20210911180357.GA6870@ahch-to
1 parentfa5d041 commit7e42007

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

‎src/backend/regex/regexec.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,8 @@ pg_regexec(regex_t *re,
196196
returnREG_INVARG;
197197
if (re->re_csize!=sizeof(chr))
198198
returnREG_MIXED;
199+
if (search_start>len)
200+
returnREG_NOMATCH;
199201

200202
/* Initialize locale-dependent support */
201203
pg_set_regex_collation(re->re_collation);

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp