diff options
author | David Tardon <dtardon@redhat.com> | 2013-05-11 15:59:06 +0200 |
---|---|---|
committer | David Tardon <dtardon@redhat.com> | 2013-05-11 16:03:36 +0200 |
commit | 4cd2e20ed2c21dcf0b7b30a9e297d763f9910f0a (patch) | |
tree | 46cd1ea90a703f7e891b717acf58445e4b685cfe /src | |
parent | d6c0337db446820d14d2dc9c3c4edb22955dbc02 (diff) |
handle broken internal streams
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/CDRParser.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/lib/CDRParser.cpp b/src/lib/CDRParser.cpp index 1dfcec5..9e1e8ed 100644 --- a/src/lib/CDRParser.cpp +++ b/src/lib/CDRParser.cpp @@ -2419,8 +2419,13 @@ bool libcdr::CDRParser::_redirectX6Chunk(WPXInputStream **input, unsigned &lengt { unsigned streamOffset = readU32(*input); *input = m_externalStreams[streamNumber]; - (*input)->seek(streamOffset, WPX_SEEK_SET); - return true; + if (*input) + { + (*input)->seek(streamOffset, WPX_SEEK_SET); + return !(*input)->atEOS(); + } + else + return false; } else if (streamNumber == 0xffffffff) return true; |