summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDarren Salt <linux@youmustbejoking.demon.co.uk>2009-03-09 16:53:14 +0000
committerDarren Salt <linux@youmustbejoking.demon.co.uk>2009-03-09 16:53:14 +0000
commit3863a132e3e7dd0fe4aab68a811a9732717a217b (patch)
tree6fbc5ad8cd8c7fc22c7ae10b7453ec9c1580d6bc
parente2e4a31eef68c45ed4954d25b6b92eabbafef2ce (diff)
downloadxine-lib-3863a132e3e7dd0fe4aab68a811a9732717a217b.tar.gz
xine-lib-3863a132e3e7dd0fe4aab68a811a9732717a217b.tar.bz2
MPEG block demuxer fixup (prevents, e.g., segfaults when playing VCDs).
-rw-r--r--ChangeLog1
-rw-r--r--src/demuxers/demux_mpeg_block.c3
2 files changed, 3 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 2f4000c28..aada6125c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -6,6 +6,7 @@ xine-lib (1.1.17) 2009-??-??
* Protect audio loop so it cannot write to a paused device (fix
pause/resume freeze with pulseaudio).
* Fix build with libavutil >= 50.0.0.
+ * Fix segfaults when playing VCDs.
xine-lib (1.1.16.2) 2009-02-10
* Build fixes related to ImageMagick 6.4 & later.
diff --git a/src/demuxers/demux_mpeg_block.c b/src/demuxers/demux_mpeg_block.c
index 4fa96faeb..ffbc63f3d 100644
--- a/src/demuxers/demux_mpeg_block.c
+++ b/src/demuxers/demux_mpeg_block.c
@@ -1417,7 +1417,8 @@ static demux_plugin_t *open_plugin (demux_class_t *class_gen, xine_stream_t *str
}
input->seek(input, 0, SEEK_SET);
- if (input->read(input, this->scratch, this->blocksize) == this->blocksize) {
+ memset (this->scratch, 255, 5); /* result of input->read() won't matter */
+ if (input->read(input, this->scratch, this->blocksize)) {
lprintf("open_plugin:read worked\n");
if (this->scratch[0] || this->scratch[1]