[PATCH] xmllite: free elem in error paths (Coverity)

Marcus Meissner marcus at jet.franken.de
Thu May 9 03:59:43 CDT 2013


 971375 Resource leak

Ciao, Marcus
---
 dlls/xmllite/reader.c |   10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/dlls/xmllite/reader.c b/dlls/xmllite/reader.c
index 3d0b4a8..72e9836 100644
--- a/dlls/xmllite/reader.c
+++ b/dlls/xmllite/reader.c
@@ -379,12 +379,18 @@ static HRESULT reader_push_element(xmlreader *reader, strval *qname)
     if (!elem) return E_OUTOFMEMORY;
 
     hr = reader_strvaldup(reader, qname, &elem->qname);
-    if (FAILED(hr)) return hr;
+    if (FAILED(hr)) {
+        reader_free(reader, elem);
+        return hr;
+    }
 
     if (!list_empty(&reader->elements))
     {
         hr = reader_inc_depth(reader);
-        if (FAILED(hr)) return hr;
+        if (FAILED(hr)) {
+             reader_free(reader, elem);
+             return hr;
+        }
     }
 
     list_add_head(&reader->elements, &elem->entry);
-- 
1.7.10.4




More information about the wine-patches mailing list