curl_xml plugin: Check the return value of “cx_evaluate_xpath”.
authorFlorian Forster <octo@huhu.verplant.org>
Mon, 11 Jan 2010 14:46:07 +0000 (15:46 +0100)
committerFlorian Forster <octo@huhu.verplant.org>
Mon, 11 Jan 2010 14:46:07 +0000 (15:46 +0100)
src/curl_xml.c

index a8dbc1c..7805166 100644 (file)
@@ -251,7 +251,6 @@ static int  cx_submit_xpath_values (char *plugin_instance, /* {{{ */
 
   xmlXPathObjectPtr base_node_obj = NULL;
   xmlXPathObjectPtr instance_node_obj = NULL;
-  xmlXPathObjectPtr values_node_obj = NULL;
   xmlNodeSetPtr base_nodes = NULL;
   xmlNodeSetPtr instance_node = NULL;
   xmlNodeSetPtr values_node = NULL;
@@ -337,11 +336,16 @@ static int  cx_submit_xpath_values (char *plugin_instance, /* {{{ */
           xmlXPathFreeObject (instance_node_obj);
           continue;
         }
-     }
+     } /* if (xpath->instance != NULL) */
 
      for (j = 0; j < xpath->values_len; j++)
      {
+       xmlXPathObjectPtr values_node_obj;
+
        values_node_obj = cx_evaluate_xpath (xpath_ctx, BAD_CAST xpath->values[j].path);
+       if (values_node_obj == NULL)
+         continue; /* Error already logged. */
+
        values_node = values_node_obj->nodesetval;
        tmp_size = (values_node) ? values_node->nodeNr : 0;