diff options
author | Matthias Hopf <mhopf@suse.de> | 2008-12-31 20:47:08 +0100 |
---|---|---|
committer | Matthias Hopf <mhopf@suse.de> | 2008-12-31 20:47:08 +0100 |
commit | 974a1dd501cf1c2db0cb647d9a0ef8010e52b7fe (patch) | |
tree | 532cfccd1622fd8b829f7ab414a29c1b4271444e | |
parent | 60ddd2922aabe6704e0baa135ca54e9111782b7c (diff) | |
download | xine-lib-974a1dd501cf1c2db0cb647d9a0ef8010e52b7fe.tar.gz xine-lib-974a1dd501cf1c2db0cb647d9a0ef8010e52b7fe.tar.bz2 |
abort if buffer for matroska block data cannot be allocated
return error when the allocation function returns NULL
Otherwise xine might be induced to segfault by bad user data.
-rw-r--r-- | src/demuxers/demux_matroska.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/demuxers/demux_matroska.c b/src/demuxers/demux_matroska.c index 12cd282dd..924c70bde 100644 --- a/src/demuxers/demux_matroska.c +++ b/src/demuxers/demux_matroska.c @@ -1823,6 +1823,11 @@ static int read_block_data (demux_matroska_t *this, size_t len) { alloc_block_data(this, len); /* block datas */ + if (! this->block_data) { + xprintf(this->stream->xine, XINE_VERBOSITY_LOG, + "demux_matroska: memory allocation error\n"); + return 0; + } if (this->input->read(this->input, this->block_data, len) != len) { off_t pos = this->input->get_current_pos(this->input); xprintf(this->stream->xine, XINE_VERBOSITY_LOG, |