Hi Marcus,
diff --git a/dlls/webservices/reader.c b/dlls/webservices/reader.c index 72e75c3..688bc2b 100644 --- a/dlls/webservices/reader.c +++ b/dlls/webservices/reader.c @@ -928,7 +928,7 @@ static HRESULT read_attribute( struct reader *reader, WS_XML_ATTRIBUTE **ret ) WS_XML_UTF8_TEXT *text; unsigned int len = 0, ch, skip, quote; const unsigned char *start; - WS_XML_STRING *prefix, *localname; + WS_XML_STRING *prefix, *localname = NULL; HRESULT hr = WS_E_INVALID_FORMAT;
if (!(attr = heap_alloc_zero( sizeof(*attr) ))) return E_OUTOFMEMORY; @@ -948,7 +948,11 @@ static HRESULT read_attribute( struct reader *reader, WS_XML_ATTRIBUTE **ret ) if (WsXmlStringEquals( prefix, &xmlns, NULL ) == S_OK) { attr->isXmlNs = 1; - if (!(attr->prefix = alloc_xml_string( localname->bytes, localname->length ))) goto error; + heap_free (prefix); + if (!(attr->prefix = alloc_xml_string( localname->bytes, localname->length ))) { + heap_free (localname); + goto error; + } attr->localName = localname; } else
Please replace tabs with spaces and use the same formatting as surrounding code. Otherwise it looks good, thanks.