postgresql/src
Tom Lane 59f23fe8d4 Make plperl safe against functions that are redefined while running.
validate_plperl_function() supposed that it could free an old
plperl_proc_desc struct immediately upon detecting that it was stale.
However, if a plperl function is called recursively, this could result
in deleting the struct out from under an outer invocation, leading to
misbehavior or crashes.  Add a simple reference-count mechanism to
ensure that such structs are freed only when the last reference goes
away.

Per investigation of bug #7516 from Marko Tiikkaja.  I am not certain
that this error explains his report, because he says he didn't have
any recursive calls --- but it's hard to see how else it could have
crashed right there.  In any case, this definitely fixes some problems
in the area.

Back-patch to all active branches.
2012-09-09 20:32:54 -04:00
..
backend Allow embedded spaces without quoting in unix_socket_directories entries. 2012-09-06 11:43:51 -04:00
bin Fix "too many arguments" messages not to index off the end of argv[]. 2012-09-06 15:52:22 -04:00
include Fix PARAM_EXEC assignment mechanism to be safe in the presence of WITH. 2012-09-05 12:55:01 -04:00
interfaces Use .NOTPARALLEL in ecpg/Makefile to avoid a gmake parallelism bug. 2012-09-09 15:08:32 -04:00
makefiles Remove BSD/OS (BSDi) port. There are no known users upgrading to 2012-05-03 10:58:44 -04:00
pl Make plperl safe against functions that are redefined while running. 2012-09-09 20:32:54 -04:00
port Add strerror() string to chdir() error message 2012-08-28 23:01:23 -04:00
template Remove BSD/OS (BSDi) port. There are no known users upgrading to 2012-05-03 10:58:44 -04:00
test Fix PARAM_EXEC assignment mechanism to be safe in the presence of WITH. 2012-09-05 12:55:01 -04:00
timezone Update time zone data files to tzdata release 2012e. 2012-08-14 10:54:24 -04:00
tools Remove src/tool/backend, now that the content is on the web site and wiki. 2012-09-04 12:38:33 -04:00
tutorial Update copyright notices for year 2012. 2012-01-01 18:01:58 -05:00
.gitignore Convert cvsignore to gitignore, and add .gitignore for build targets. 2010-09-22 12:57:04 +02:00
bcc32.mak Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
DEVELOPERS Replace a couple of references to files that no longer exist in the source 2009-05-04 08:08:47 +00:00
Makefile Fix some oversights in distprep and maintainer-clean targets. 2011-03-10 00:04:05 -05:00
Makefile.global.in Remove configure flag --disable-shared, as it is no longer used by any 2012-08-30 16:26:53 -04:00
Makefile.shlib Remove configure flag --disable-shared, as it is no longer used by any 2012-08-30 16:26:53 -04:00
nls-global.mk Lots of doc corrections. 2012-04-23 22:43:09 -04:00
win32.mak Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00