Fix two places in xml.c that neglected to check the return values of
authorNeil Conway <neilc@samurai.com>
Sat, 12 Jan 2008 10:50:03 +0000 (10:50 +0000)
committerNeil Conway <neilc@samurai.com>
Sat, 12 Jan 2008 10:50:03 +0000 (10:50 +0000)
SPI_prepare() and SPI_cursor_open(), to silence a Coverity warning.

src/backend/utils/adt/xml.c

index 7ae82b588d3087570bb572e1762880c656c509e4..9eea2b62301863e2539b05f845953f168f6ca020 100644 (file)
@@ -2137,8 +2137,13 @@ query_to_xmlschema(PG_FUNCTION_ARGS)
        Portal          portal;
 
        SPI_connect();
-       plan = SPI_prepare(query, 0, NULL);
-       portal = SPI_cursor_open(NULL, plan, NULL, NULL, true);
+
+       if ((plan = SPI_prepare(query, 0, NULL)) == NULL)
+               elog(ERROR, "SPI_prepare(\"%s\") failed", query);
+
+       if ((portal = SPI_cursor_open(NULL, plan, NULL, NULL, true)) == NULL)
+               elog(ERROR, "SPI_cursor_open(\"%s\") failed", query);
+
        result = _SPI_strdup(map_sql_table_to_xmlschema(portal->tupDesc,
                                                                                                        InvalidOid, nulls,
                                                                                                        tableforest, targetns));
@@ -2209,8 +2214,13 @@ query_to_xml_and_xmlschema(PG_FUNCTION_ARGS)
        Portal          portal;
 
        SPI_connect();
-       plan = SPI_prepare(query, 0, NULL);
-       portal = SPI_cursor_open(NULL, plan, NULL, NULL, true);
+
+       if ((plan = SPI_prepare(query, 0, NULL)) == NULL)
+               elog(ERROR, "SPI_prepare(\"%s\") failed", query);
+
+       if ((portal = SPI_cursor_open(NULL, plan, NULL, NULL, true)) == NULL)
+               elog(ERROR, "SPI_cursor_open(\"%s\") failed", query);
+
        xmlschema = _SPI_strdup(map_sql_table_to_xmlschema(portal->tupDesc,
                                                                  InvalidOid, nulls, tableforest, targetns));
        SPI_cursor_close(portal);