aboutsummaryrefslogtreecommitdiff
path: root/libavformat/rmdec.c
diff options
context:
space:
mode:
authorRonald S. Bultje2009-03-09 13:08:19 +0000
committerRonald S. Bultje2009-03-09 13:08:19 +0000
commit0ecf9cc9007b49f989f4276ef517652fa734d927 (patch)
tree093a7602c4393bf5da352fb56e431a10b17d9a26 /libavformat/rmdec.c
parent21b3752932330202e1bfeea5de7e237280a0e7c3 (diff)
Prevent (negative) overflow of rm->remaining_len. This evaluation really only
has two possible outcomes: either len and rm->remaining_len are the same, in which case we care about the outcome and it is zero, or rm->remaining_len is currently not in use and we don't care about the outcome. In that case, len is positive and rm->remaining_len is zero, which leads to a negative result. This is confusing and could eventually lead to a sign-flip if we skip a lot of packets (unlikely, but still). Therefore, just always set it to zero. Originally committed as revision 17910 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavformat/rmdec.c')
-rw-r--r--libavformat/rmdec.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libavformat/rmdec.c b/libavformat/rmdec.c
index 39e91a5a1c..4be7397174 100644
--- a/libavformat/rmdec.c
+++ b/libavformat/rmdec.c
@@ -468,7 +468,7 @@ static int sync(AVFormatContext *s, int64_t *timestamp, int *flags, int *stream_
skip:
/* skip packet if unknown number */
url_fskip(pb, len);
- rm->remaining_len -= len;
+ rm->remaining_len = 0;
continue;
}
*stream_index= i;