mirror of
https://github.com/postgres/postgres.git
synced 2025-04-27 22:56:53 +03:00
Add recursion depth protection to LIKE matching.
Since MatchText() recurses, it could in principle be driven to stack overflow, although quite a long pattern would be needed.
This commit is contained in:
parent
b63fc28776
commit
2e8cfcf4ea
@ -21,6 +21,7 @@
|
||||
|
||||
#include "catalog/pg_collation.h"
|
||||
#include "mb/pg_wchar.h"
|
||||
#include "miscadmin.h"
|
||||
#include "utils/builtins.h"
|
||||
#include "utils/pg_locale.h"
|
||||
|
||||
|
@ -83,6 +83,9 @@ MatchText(char *t, int tlen, char *p, int plen,
|
||||
if (plen == 1 && *p == '%')
|
||||
return LIKE_TRUE;
|
||||
|
||||
/* Since this function recurses, it could be driven to stack overflow */
|
||||
check_stack_depth();
|
||||
|
||||
/*
|
||||
* In this loop, we advance by char when matching wildcards (and thus on
|
||||
* recursive entry to this function we are properly char-synced). On other
|
||||
|
Loading…
x
Reference in New Issue
Block a user