[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