Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mpc-hc/mpc-hc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUnderground78 <underground78@users.sourceforge.net>2012-11-10 23:18:06 +0400
committerUnderground78 <underground78@users.sourceforge.net>2012-11-10 23:26:18 +0400
commit5f99d807904e3adaa533b954df8bc37e28c7a4fe (patch)
tree243fb15185ff7537821044e56030cbd2e084d12f /src/filters/parser/AviSplitter
parente86c84ffe16e76daac0bd0cfb82850f1c2013462 (diff)
Avi Splitter: Fix a potential crash with PCM tracks.
Avoid reading in unallocated memory. This commit fixes ticket #2699.
Diffstat (limited to 'src/filters/parser/AviSplitter')
-rw-r--r--src/filters/parser/AviSplitter/AviSplitter.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/filters/parser/AviSplitter/AviSplitter.cpp b/src/filters/parser/AviSplitter/AviSplitter.cpp
index e4d037651..37eb019a1 100644
--- a/src/filters/parser/AviSplitter/AviSplitter.cpp
+++ b/src/filters/parser/AviSplitter/AviSplitter.cpp
@@ -281,7 +281,10 @@ HRESULT CAviSplitterFilter::CreateOutputs(IAsyncReader* pAsyncReader)
mt.subtype = FOURCCMap(pwfe->wFormatTag);
}
mt.formattype = FORMAT_WaveFormatEx;
- mt.SetFormat(s->strf.GetData(), max((ULONG)s->strf.GetCount(), sizeof(WAVEFORMATEX)));
+ if (NULL == mt.AllocFormatBuffer(max((ULONG)s->strf.GetCount(), sizeof(WAVEFORMATEX)))) {
+ continue;
+ }
+ memcpy(mt.Format(), s->strf.GetData(), s->strf.GetCount());
pwfe = (WAVEFORMATEX*)mt.Format();
if (s->strf.GetCount() == sizeof(PCMWAVEFORMAT)) {
pwfe->cbSize = 0;