Mercurial > libavformat.hg
changeset 1713:e48ab5187493 libavformat
replace wrong return 0 by -1
author | michael |
---|---|
date | Mon, 22 Jan 2007 21:28:56 +0000 |
parents | fdeab224942d |
children | ff33c20963ec |
files | asf.c |
diffstat | 1 files changed, 6 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/asf.c Mon Jan 22 21:17:54 2007 +0000 +++ b/asf.c Mon Jan 22 21:28:56 2007 +0000 @@ -502,11 +502,11 @@ //the following checks prevent overflows and infinite loops if(packet_length >= (1U<<29)){ av_log(s, AV_LOG_ERROR, "invalid packet_length %d at:%"PRId64"\n", packet_length, url_ftell(pb)); - return 0; // FIXME this should be -1 + return -1; } if(padsize >= (1U<<29)){ av_log(s, AV_LOG_ERROR, "invalid padsize %d at:%"PRId64"\n", padsize, url_ftell(pb)); - return 0; // FIXME this should be -1 + return -1; } asf->packet_timestamp = get_le32(pb); @@ -598,6 +598,8 @@ ByteIOContext *pb = &s->pb; //static int pc = 0; for (;;) { + if(url_feof(pb)) + return AVERROR_IO; if (asf->packet_size_left < FRAME_HEADER_SIZE || asf->packet_segments < 1) { //asf->packet_size_left <= asf->packet_padsize) { @@ -619,8 +621,8 @@ return AVERROR_IO; /* Do not exceed the size of the data object */ ret = asf_get_packet(s); //printf("READ ASF PACKET %d r:%d c:%d\n", ret, asf->packet_size_left, pc++); - if (ret < 0 || url_feof(pb)) - return AVERROR_IO; + if (ret < 0) + assert(asf->packet_size_left < FRAME_HEADER_SIZE || asf->packet_segments < 1); asf->packet_time_start = 0; continue; }