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
54b116d83f
commit
b875ca09f3
|
@ -20,6 +20,7 @@
|
|||
#include <ctype.h>
|
||||
|
||||
#include "mb/pg_wchar.h"
|
||||
#include "miscadmin.h"
|
||||
#include "utils/builtins.h"
|
||||
|
||||
|
||||
|
|
|
@ -82,6 +82,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…
Reference in New Issue