diff --git a/reactos/dll/win32/shell32/CQueryAssociations.cpp b/reactos/dll/win32/shell32/CQueryAssociations.cpp index ae4651efa49..3dde87f3f54 100644 --- a/reactos/dll/win32/shell32/CQueryAssociations.cpp +++ b/reactos/dll/win32/shell32/CQueryAssociations.cpp @@ -474,11 +474,17 @@ HRESULT STDMETHODCALLTYPE CQueryAssociations::GetData(ASSOCF cfFlags, ASSOCDATA void *data; DWORD size; HRESULT hres = this->GetValue(this->hkeyProgID, edit_flags, &data, &size); - if(FAILED(hres) || !pcbOut) + if(FAILED(hres)) { return hres; } + if (!pcbOut) + { + HeapFree(GetProcessHeap(), 0, data); + return hres; + } + hres = this->ReturnData(pvOut, pcbOut, data, size); HeapFree(GetProcessHeap(), 0, data); return hres;