postgresql/src/include
Tom Lane 20c627707c Add recursion depth protections to regular expression matching.
Some of the functions in regex compilation and execution recurse, and
therefore could in principle be driven to stack overflow.  The Tcl crew
has seen this happen in practice in duptraverse(), though their fix was
to put in a hard-wired limit on the number of recursive levels, which is
not too appetizing --- fortunately, we have enough infrastructure to check
the actually available stack.  Greg Stark has also seen it in other places
while fuzz testing on a machine with limited stack space.  Let's put guards
in to prevent crashes in all these places.

Since the regex code would leak memory if we simply threw elog(ERROR),
we have to introduce an API that checks for stack depth without throwing
such an error.  Fortunately that's not difficult.
2015-10-02 14:51:58 -04:00
..
access Fix commit_ts for standby 2015-10-01 15:06:55 -03:00
bootstrap pgindent run for 9.5 2015-05-23 21:35:49 -04:00
catalog Reconcile nodes/*funcs.c with recent work. 2015-08-05 20:45:48 -04:00
commands Disallow converting a table to a view if row security is present. 2015-07-28 16:24:09 -07:00
common pgindent run for 9.5 2015-05-23 21:35:49 -04:00
datatype Define integer limits independently from the system definitions. 2015-04-02 17:43:35 +02:00
executor Redesign tablesample method API, and do extensive code review. 2015-07-25 14:39:00 -04:00
foreign Add support for doing late row locking in FDWs. 2015-05-12 14:10:17 -04:00
lib Avoid use of float arithmetic in bipartite_match.c. 2015-08-23 13:02:19 -04:00
libpq Fix incorrect order of lock file removal and failure to close() sockets. 2015-08-02 14:55:04 -04:00
mb Teach UtfToLocal/LocalToUtf to support algorithmic encoding conversions. 2015-05-14 22:27:12 -04:00
nodes Remove no-longer-used T_PrivGrantee node tag. 2015-09-16 10:48:21 -04:00
optimizer Fix eclass_useful_for_merging to give valid results for appendrel children. 2015-08-06 20:14:54 -04:00
parser Create new ParseExprKind for use by policy expressions. 2015-07-29 15:41:00 -07:00
port Fix comment atomics.h. 2015-08-05 13:07:44 +02:00
portability Use mmap MAP_NOSYNC option to limit shared memory writes 2015-03-21 22:06:19 -04:00
postmaster pgindent run for 9.5 2015-05-23 21:35:49 -04:00
regex Add recursion depth protections to regular expression matching. 2015-10-02 14:51:58 -04:00
replication Fix "sesssion" typo 2015-09-28 19:13:42 -03:00
rewrite RLS refactoring 2015-09-15 15:49:40 -04:00
snowball Update copyright for 2015 2015-01-06 11:43:47 -05:00
storage Rework the way multixact truncations work. 2015-09-26 19:04:25 +02:00
tcop pgindent run for 9.5 2015-05-23 21:35:49 -04:00
tsearch Fix statically allocated struct with FLEXIBLE_ARRAY_MEMBER member. 2015-02-20 17:50:18 -05:00
utils Allow planner to use expression-index stats for function calls in WHERE. 2015-09-24 18:35:46 -04:00
.gitignore Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00
c.h Fix more typos in comments. 2015-05-20 19:45:43 +03:00
fmgr.h Fix comment in fmgr.h to refer to actual function used. 2015-06-15 23:21:03 -04:00
funcapi.h pgindent run for 9.5 2015-05-23 21:35:49 -04:00
getaddrinfo.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
getopt_long.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
Makefile Install all headers for the new atomics API. 2014-10-02 16:52:21 +02:00
miscadmin.h Add recursion depth protections to regular expression matching. 2015-10-02 14:51:58 -04:00
pg_config.h.in Use Intel SSE 4.2 CRC instructions where available. 2015-04-14 17:05:03 +03:00
pg_config.h.win32 Stamp 9.5alpha2. 2015-08-03 16:34:55 -04:00
pg_config_ext.h.in Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00
pg_config_ext.h.win32 Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00
pg_config_manual.h Define integer limits independently from the system definitions. 2015-04-02 17:43:35 +02:00
pg_getopt.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
pg_trace.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
pgstat.h pgindent run for 9.5 2015-05-23 21:35:49 -04:00
pgtar.h Error when creating names too long for tar format 2015-02-24 13:41:07 -05:00
pgtime.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
port.h Redesign tablesample method API, and do extensive code review. 2015-07-25 14:39:00 -04:00
postgres.h Support "expanded" objects, particularly arrays, for better performance. 2015-05-14 12:08:49 -04:00
postgres_ext.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
postgres_fe.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
rusagestub.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
windowapi.h Update copyright for 2015 2015-01-06 11:43:47 -05:00