diff options
author | Matthias Hopf <mhopf@suse.de> | 2008-12-31 23:01:54 +0100 |
---|---|---|
committer | Matthias Hopf <mhopf@suse.de> | 2008-12-31 23:01:54 +0100 |
commit | 82a5ac7e7ef212e08d63a8f31482548fdb3c9ba4 (patch) | |
tree | 60028533df212aaa087646aee69bde1ae79b9430 | |
parent | 4dd616ec236a414c96df5ffeecbb76e077c16571 (diff) | |
download | xine-lib-82a5ac7e7ef212e08d63a8f31482548fdb3c9ba4.tar.gz xine-lib-82a5ac7e7ef212e08d63a8f31482548fdb3c9ba4.tar.bz2 |
check number of bytes read by input->read in demuxing mpeg block/pes
input->read may return negative error codes or read less than we want
so we should check for the right return value instead of just not 0
-rw-r--r-- | src/demuxers/demux_mpeg_block.c | 6 | ||||
-rw-r--r-- | src/demuxers/demux_mpeg_pes.c | 2 |
2 files changed, 4 insertions, 4 deletions
diff --git a/src/demuxers/demux_mpeg_block.c b/src/demuxers/demux_mpeg_block.c index 3ecb88d04..4fa96faeb 100644 --- a/src/demuxers/demux_mpeg_block.c +++ b/src/demuxers/demux_mpeg_block.c @@ -1190,14 +1190,14 @@ static int demux_mpeg_detect_blocksize(demux_mpeg_block_t *this, input_plugin_t *input) { input->seek(input, 2048, SEEK_SET); - if (!input->read(input, this->scratch, 4)) + if (input->read(input, this->scratch, 4) != 4) return 0; if (this->scratch[0] || this->scratch[1] || (this->scratch[2] != 0x01) || (this->scratch[3] != 0xba)) { input->seek(input, 2324, SEEK_SET); - if (!input->read(input, this->scratch, 4)) + if (input->read(input, this->scratch, 4) != 4) return 0; if (this->scratch[0] || this->scratch[1] || (this->scratch[2] != 0x01) || (this->scratch[3] != 0xba)) @@ -1417,7 +1417,7 @@ 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)) { + if (input->read(input, this->scratch, this->blocksize) == this->blocksize) { lprintf("open_plugin:read worked\n"); if (this->scratch[0] || this->scratch[1] diff --git a/src/demuxers/demux_mpeg_pes.c b/src/demuxers/demux_mpeg_pes.c index 32dd2cb51..fd0411e9d 100644 --- a/src/demuxers/demux_mpeg_pes.c +++ b/src/demuxers/demux_mpeg_pes.c @@ -1687,7 +1687,7 @@ static demux_plugin_t *open_plugin (demux_class_t *class_gen, xine_stream_t *str if (((input->get_capabilities(input) & INPUT_CAP_SEEKABLE) != 0) ) { input->seek(input, 0, SEEK_SET); - if (input->read(input, (char *)this->scratch, 6)) { + if (input->read(input, (char *)this->scratch, 6) == 6) { lprintf("open_plugin:read worked\n"); if (this->scratch[0] || this->scratch[1] |