activeds: Free memory on error paths (coverity).

This commit is contained in:
Alistair Leslie-Hughes 2023-05-08 09:05:42 +10:00 committed by Alexandre Julliard
parent 820a9d0d6c
commit 992ec949ba

View file

@ -136,7 +136,10 @@ static HRESULT parse_path(BSTR path, BSTR *provider, BSTR *server, BSTR *dn)
if (!*p) return S_OK; if (!*p) return S_OK;
if (*p++ != '/' || *p++ != '/' || !*p) if (*p++ != '/' || *p++ != '/' || !*p)
{
SysFreeString(*provider);
return E_ADS_BAD_PATHNAME; return E_ADS_BAD_PATHNAME;
}
p_server = p; p_server = p;
server_len = 0; server_len = 0;
@ -145,7 +148,11 @@ static HRESULT parse_path(BSTR path, BSTR *provider, BSTR *server, BSTR *dn)
p++; p++;
server_len++; server_len++;
} }
if (server_len == 0) return E_ADS_BAD_PATHNAME; if (server_len == 0)
{
SysFreeString(*provider);
return E_ADS_BAD_PATHNAME;
}
*server = SysAllocStringLen(p_server, server_len); *server = SysAllocStringLen(p_server, server_len);
if (!*server) if (!*server)