summaryrefslogtreecommitdiff
path: root/src/tutorial/basics.source
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2012-09-09 20:32:59 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2012-09-09 20:32:59 -0400
commit81ead89ee152e5381aec0cf7352e5fa131a6c336 (patch)
tree20fa1e1a5578b647ca6a06a571b43e1f5ad23440 /src/tutorial/basics.source
parentaf3de2d19ec65216737192b8cdd948331c3f2e80 (diff)
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.
Diffstat (limited to 'src/tutorial/basics.source')
0 files changed, 0 insertions, 0 deletions