Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Defend against null error message reported by libxml2.
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 8 Feb 2019 18:30:42 +0000 (13:30 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 8 Feb 2019 18:31:23 +0000 (13:31 -0500)
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

src/backend/utils/adt/xml.c

index 9d3b189c940bbf63c0ec8582e5bd3439b6b388c2..e78c2ab96bab04807641cbf59e385e9adf36c808 100644 (file)
@@ -1636,7 +1636,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.