diff options
-rw-r--r-- | sc/source/ui/dataprovider/htmldataprovider.cxx | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/sc/source/ui/dataprovider/htmldataprovider.cxx b/sc/source/ui/dataprovider/htmldataprovider.cxx index bbe6dd3c514b..b8b7b3746d2c 100644 --- a/sc/source/ui/dataprovider/htmldataprovider.cxx +++ b/sc/source/ui/dataprovider/htmldataprovider.cxx @@ -192,8 +192,21 @@ void HTMLFetchThread::execute() OString aID = OUStringToOString(maID, RTL_TEXTENCODING_UTF8); xmlXPathContextPtr pXmlXpathCtx = xmlXPathNewContext(pHtmlPtr); xmlXPathObjectPtr pXmlXpathObj = xmlXPathEvalExpression(BAD_CAST(aID.getStr()), pXmlXpathCtx); + + if (!pXmlXpathObj) + { + xmlXPathFreeContext(pXmlXpathCtx); + return; + } xmlNodeSetPtr pXmlNodes = pXmlXpathObj->nodesetval; + if (!pXmlNodes) + { + xmlXPathFreeNodeSetList(pXmlXpathObj); + xmlXPathFreeContext(pXmlXpathCtx); + return; + } + if (pXmlNodes->nodeNr == 0) { xmlXPathFreeNodeSet(pXmlNodes); |