[2/2] [PATCH] msxml3: fixed if nesting / ptr checking problems in xmlnode_transformNode

Marcus Meissner marcus at jet.franken.de
Thu Oct 30 18:19:49 CDT 2008


Hi,

The code called functions on NULL pointers, or leaked
xmlBufs. Fixed like this by moving the frees inside
the right brace block. Removed a doubled pOutput NULL check too.

Ciao, Marcus
---
 dlls/msxml3/node.c |   13 ++++---------
 1 files changed, 4 insertions(+), 9 deletions(-)

diff --git a/dlls/msxml3/node.c b/dlls/msxml3/node.c
index 1d99be3..f2c6154 100644
--- a/dlls/msxml3/node.c
+++ b/dlls/msxml3/node.c
@@ -1310,12 +1310,8 @@ static HRESULT WINAPI xmlnode_transformNode(
                     if(pOutput)
                     {
                         htmlDocContentDumpOutput(pOutput, result->doc, NULL);
-                        if(pOutput)
-                        {
-                            pContent = xmlBufferContent(pOutput->buffer);
-                            *xmlString = bstr_from_xmlChar(pContent);
-                        }
-
+                        pContent = xmlBufferContent(pOutput->buffer);
+                        *xmlString = bstr_from_xmlChar(pContent);
                         xmlOutputBufferClose(pOutput);
                     }
                 }
@@ -1332,13 +1328,12 @@ static HRESULT WINAPI xmlnode_transformNode(
                         {
                             pContent = xmlBufferContent(pXmlBuf);
                             *xmlString = bstr_from_xmlChar(pContent);
-
-                            xmlBufferFree(pXmlBuf);
                         }
+                        xmlBufferFree(pXmlBuf);
                     }
                 }
+                xmlFreeDoc(result);
             }
-            xmlFreeDoc(result);
             /* libxslt "helpfully" frees the XML document the stylesheet was
                generated from, too */
             xsltSS->doc = NULL;
-- 
1.5.6



More information about the wine-patches mailing list