File tree 1 file changed +6
-4
lines changed
1 file changed +6
-4
lines changed Original file line number Diff line number Diff line change 8
8
*
9
9
*
10
10
* IDENTIFICATION
11
- * $PostgreSQL: pgsql/src/backend/utils/adt/regexp.c,v 1.74 2007/09/21 22:52:52 tgl Exp $
11
+ * $PostgreSQL: pgsql/src/backend/utils/adt/regexp.c,v 1.75 2007/09/22 04:37:53 tgl Exp $
12
12
*
13
13
* Alistair Crooks added the code for the regex caching
14
14
* agc - cached the regular expressions used - there's a good chance
@@ -195,10 +195,12 @@ RE_compile_and_cache(text *text_re, int cflags)
195
195
}
196
196
197
197
/*
198
- * use malloc/free for the cre_pat field because the storage has to
199
- * persist across transactions
198
+ * We use malloc/free for the cre_pat field because the storage has to
199
+ * persist across transactions, and because we want to get control back
200
+ * on out-of-memory. The Max() is because some malloc implementations
201
+ * return NULL for malloc(0).
200
202
*/
201
- re_temp .cre_pat = malloc (text_re_len );
203
+ re_temp .cre_pat = malloc (Max ( text_re_len , 1 ) );
202
204
if (re_temp .cre_pat == NULL )
203
205
{
204
206
pg_regfree (& re_temp .cre_re );
You can’t perform that action at this time.
0 commit comments