diff options
author | Ronald S. Bultje <rsbultje@gmail.com> | 2009-03-09 22:03:47 +0000 |
---|---|---|
committer | Ronald S. Bultje <rsbultje@gmail.com> | 2009-03-09 22:03:47 +0000 |
commit | b8cc5a9fdfbc514a0d6e02b7c5380853a50ae1ac (patch) | |
tree | 34080d2a113d5828a350a6e7925296b59cc9774e | |
parent | 7ccefd08f67fc364eab7bf45d823617ebbb95b0c (diff) | |
download | ffmpeg-b8cc5a9fdfbc514a0d6e02b7c5380853a50ae1ac.tar.gz |
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 17919 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r-- | libavformat/rmdec.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/libavformat/rmdec.c b/libavformat/rmdec.c index 3bd0f0dd9a..befec2aff7 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; |