Module: wine Branch: master Commit: 9778faee0b62c09586d73e30f8640887e1c4d17f URL: http://source.winehq.org/git/wine.git/?a=commit;h=9778faee0b62c09586d73e30f8...
Author: Alexander Dorofeyev alexd4@inbox.lv Date: Sun Jun 29 15:07:24 2008 +0300
quartz: Improve variant handling in FilterMapper_EnumMatchingFilters.
Adds VariantClear and removes unnecessary variant type assignment that may cause heap corruption.
---
dlls/quartz/filtermapper.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/dlls/quartz/filtermapper.c b/dlls/quartz/filtermapper.c index c4b925c..ef603d8 100644 --- a/dlls/quartz/filtermapper.c +++ b/dlls/quartz/filtermapper.c @@ -1257,7 +1257,6 @@ static HRESULT WINAPI FilterMapper_EnumMatchingFilters( int len;
VariantInit(&var); - V_VT(&var) = VT_BSTR;
hrSub = IMoniker_BindToStorage(IMon, NULL, NULL, &IID_IPropertyBag, (LPVOID*)&pPropBagCat);
@@ -1267,6 +1266,8 @@ static HRESULT WINAPI FilterMapper_EnumMatchingFilters( if (SUCCEEDED(hrSub)) hrSub = CLSIDFromString(V_UNION(&var, bstrVal), &clsid);
+ VariantClear(&var); + if (SUCCEEDED(hrSub)) hrSub = IPropertyBag_Read(pPropBagCat, wszFriendlyName, &var, NULL);
@@ -1287,6 +1288,7 @@ static HRESULT WINAPI FilterMapper_EnumMatchingFilters( if (pPropBagCat) IPropertyBag_Release(pPropBagCat); IMoniker_Release(IMon); + VariantClear(&var); }
/* In case of release all resources */