aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/xml.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2019-02-08 13:30:42 -0500
committerTom Lane <tgl@sss.pgh.pa.us>2019-02-08 13:31:15 -0500
commit7821a4d60ed677ce19646383a2fc2e9e56319d5f (patch)
tree55b4fdf2c99652ee208619d22046df93f6b77727 /src/backend/utils/adt/xml.c
parenta61291ccde224a8df4b17b441b293ee9fbf513ce (diff)
downloadpostgresql-7821a4d60ed677ce19646383a2fc2e9e56319d5f.tar.gz
postgresql-7821a4d60ed677ce19646383a2fc2e9e56319d5f.zip
Defend against null error message reported by libxml2.
While this isn't really supposed to happen, it can occur in OOM situations and perhaps others. Instead of crashing, substitute "(no message provided)". I didn't worry about localizing this text, since we aren't localizing anything else here; besides, if we're on the edge of OOM, it's unlikely gettext() would work. Report and fix by Sergio Conde Gómez in bug #15624. Discussion: https://postgr.es/m/15624-4dea54091a2864e6@postgresql.org
Diffstat (limited to 'src/backend/utils/adt/xml.c')
-rw-r--r--src/backend/utils/adt/xml.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/backend/utils/adt/xml.c b/src/backend/utils/adt/xml.c
index 96f187c6ef4..8b0d9f7181c 100644
--- a/src/backend/utils/adt/xml.c
+++ b/src/backend/utils/adt/xml.c
@@ -1640,7 +1640,10 @@ xml_errorHandler(void *data, xmlErrorPtr error)
appendStringInfo(errorBuf, "line %d: ", error->line);
if (name != NULL)
appendStringInfo(errorBuf, "element %s: ", name);
- appendStringInfoString(errorBuf, error->message);
+ if (error->message != NULL)
+ appendStringInfoString(errorBuf, error->message);
+ else
+ appendStringInfoString(errorBuf, "(no message provided)");
/*
* Append context information to errorBuf.