diff options
author | Hendrik Leppkes <h.leppkes@gmail.com> | 2014-01-12 21:18:22 +0400 |
---|---|---|
committer | Hendrik Leppkes <h.leppkes@gmail.com> | 2014-01-12 21:38:17 +0400 |
commit | cc752b57c7a97ac9fd0ede5ce8910edb381df62b (patch) | |
tree | 407f1007afe27126d00433278400b27f636af719 /demuxer | |
parent | 6d4e93073b4d25ac9dd505167a5009d8506c7322 (diff) |
Safer VARIANT handling.
Diffstat (limited to 'demuxer')
-rw-r--r-- | demuxer/Demuxers/LAVFDemuxer.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/demuxer/Demuxers/LAVFDemuxer.cpp b/demuxer/Demuxers/LAVFDemuxer.cpp index 24ff6e9e..7b27f817 100644 --- a/demuxer/Demuxers/LAVFDemuxer.cpp +++ b/demuxer/Demuxers/LAVFDemuxer.cpp @@ -1456,8 +1456,14 @@ STDMETHODIMP CLAVFDemuxer::Read(LPCOLESTR pszPropName, VARIANT *pVar, IErrorLog } } - pVar->vt = VT_BSTR; - return GetBSTRMetadata(propName, &pVar->bstrVal, stream); + BSTR bstrValue = nullptr; + HRESULT hr = GetBSTRMetadata(propName, &bstrValue, stream); + if (SUCCEEDED(hr)) { + VariantClear(pVar); + pVar->vt = VT_BSTR; + pVar->bstrVal = bstrValue; + } + return hr; } STDMETHODIMP CLAVFDemuxer::Write(LPCOLESTR pszPropName, VARIANT *pVar) |