summaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/xml.c
diff options
context:
space:
mode:
authorPeter Eisentraut2019-11-07 08:54:09 +0000
committerPeter Eisentraut2019-11-07 08:56:47 +0000
commit581a55889ba7f76dd87a270e37e5137f684bfdb7 (patch)
treef8b853fa8a771bd2a962ed174662c6815f138a32 /src/backend/utils/adt/xml.c
parenta0c96856e8b38a102daac76e3d385d9f8876744e (diff)
Fix nested error handling in PG_FINALLY
We need to pop the error stack before running the user-supplied PG_FINALLY code. Otherwise an error in the cleanup code would end up at the same sigsetjmp() invocation and result in an infinite error handling loop. Reviewed-by: Tom Lane <[email protected]> Discussion: https://www.postgresql.org/message-id/flat/95a822c3-728b-af0e-d7e5-71890507ae0c%402ndquadrant.com
Diffstat (limited to 'src/backend/utils/adt/xml.c')
-rw-r--r--src/backend/utils/adt/xml.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/backend/utils/adt/xml.c b/src/backend/utils/adt/xml.c
index 3bc17164312..1ec16f49b29 100644
--- a/src/backend/utils/adt/xml.c
+++ b/src/backend/utils/adt/xml.c
@@ -3868,7 +3868,7 @@ xml_xmlnodetoxmltype(xmlNodePtr cur, PgXmlErrorContext *xmlerrcxt)
result = xmlBuffer_to_xmltype(buf);
}
- PG_FINALLY()
+ PG_FINALLY();
{
if (nodefree)
nodefree(cur_copy);