diff options
author | v0lt <v0lt@rambler.ru> | 2012-11-08 20:40:40 +0400 |
---|---|---|
committer | v0lt <v0lt@rambler.ru> | 2012-11-08 20:40:40 +0400 |
commit | d071fb7a2b1c5a5d9832e043ca58dc9ac8ae6634 (patch) | |
tree | 2c948b527c174ffb1620e1b60c87ca5e76d3de87 /src/filters/parser/AviSplitter | |
parent | 33067e28e2fd61882c5c63a944adad3615833f5a (diff) |
AviSplitter: skip broken chunk in header (ticket #2706)
Diffstat (limited to 'src/filters/parser/AviSplitter')
-rw-r--r-- | src/filters/parser/AviSplitter/AviFile.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/filters/parser/AviSplitter/AviFile.cpp b/src/filters/parser/AviSplitter/AviFile.cpp index b9e38f9aa..1247a1034 100644 --- a/src/filters/parser/AviSplitter/AviFile.cpp +++ b/src/filters/parser/AviSplitter/AviFile.cpp @@ -155,6 +155,9 @@ HRESULT CAviFile::Parse(DWORD parentid, __int64 end) if (S_OK != Read(size)) {
return E_FAIL;
}
+ if (GetPos() + size > end) {
+ return E_FAIL; // broken chunk
+ }
TRACE(_T("CAviFile::Parse(..): '%c%c%c%c'\n"),
TCHAR((id >> 0) & 0xff),
|