[2/2] dxdiagn: Successfully copy to destination variants with an invalid type in IDxDiagContainer::GetProp.
Alexandre Julliard
julliard at winehq.org
Tue Mar 23 05:47:25 CDT 2010
Andrew Nguyen <arethusa26 at gmail.com> writes:
> @@ -221,9 +221,17 @@ static HRESULT WINAPI IDxDiagContainerImpl_GetProp(PDXDIAGCONTAINER iface, LPCWS
>
> p = This->properties;
> while (NULL != p) {
> - if (0 == lstrcmpW(p->vName, pwszPropName)) {
> - VariantCopy(pvarProp, &p->v);
> - return S_OK;
> + if (0 == lstrcmpW(p->vName, pwszPropName)) {
> + HRESULT hr = VariantClear(pvarProp);
> + if (hr == DISP_E_ARRAYISLOCKED)
> + {
> + while (SafeArrayUnlock(V_ARRAY(pvarProp)) == S_OK);
> + VariantClear(pvarProp);
This looks suspicious. Do you have evidence that the array should be
forcibly unlocked and destroyed?
--
Alexandre Julliard
julliard at winehq.org
More information about the wine-devel
mailing list