Go to file
Tom Lane 9ed207ae99 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
config Blacklist xlc 32-bit inlining. 2015-07-29 22:53:40 -04:00
contrib Fix pg_dump to handle inherited NOT VALID check constraints correctly. 2015-10-01 16:19:49 -04:00
doc Docs: add disclaimer about hazards of using regexps from untrusted sources. 2015-10-02 13:30:43 -04:00
src Add recursion depth protections to regular expression matching. 2015-10-02 14:51:58 -04:00
.gitignore Add pkg-config files for libpq and ecpg libraries 2013-03-31 16:58:40 -04:00
aclocal.m4
configure AIX: Test the -qlonglong option before use. 2015-07-17 03:02:03 -04:00
configure.in AIX: Test the -qlonglong option before use. 2015-07-17 03:02:03 -04:00
COPYRIGHT Update copyright for 2015 2015-01-06 11:43:46 -05:00
GNUmakefile.in Don't generate plain-text HISTORY and src/test/regress/README anymore. 2014-02-10 20:48:12 -05:00
HISTORY Improve text of stub HISTORY file. 2014-02-12 18:16:27 -05:00
Makefile
README Don't generate plain-text HISTORY and src/test/regress/README anymore. 2014-02-10 20:48:12 -05:00
README.git Don't generate plain-text HISTORY and src/test/regress/README anymore. 2014-02-10 20:48:12 -05:00

PostgreSQL Database Management System
=====================================

This directory contains the source code distribution of the PostgreSQL
database management system.

PostgreSQL is an advanced object-relational database management system
that supports an extended subset of the SQL standard, including
transactions, foreign keys, subqueries, triggers, user-defined types
and functions.  This distribution also contains C language bindings.

PostgreSQL has many language interfaces, many of which are listed here:

	http://www.postgresql.org/download

See the file INSTALL for instructions on how to build and install
PostgreSQL.  That file also lists supported operating systems and
hardware platforms and contains information regarding any other
software packages that are required to build or run the PostgreSQL
system.  Copyright and license information can be found in the
file COPYRIGHT.  A comprehensive documentation set is included in this
distribution; it can be read as described in the installation
instructions.

The latest version of this software may be obtained at
http://www.postgresql.org/download/.  For more information look at our
web site located at http://www.postgresql.org/.