summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDavid Tardon <dtardon@redhat.com>2013-05-11 15:59:06 +0200
committerDavid Tardon <dtardon@redhat.com>2013-05-11 16:03:36 +0200
commit4cd2e20ed2c21dcf0b7b30a9e297d763f9910f0a (patch)
tree46cd1ea90a703f7e891b717acf58445e4b685cfe /src
parentd6c0337db446820d14d2dc9c3c4edb22955dbc02 (diff)
handle broken internal streams
Diffstat (limited to 'src')
-rw-r--r--src/lib/CDRParser.cpp9
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;