diff options
author | JULIAN GARDNER <joolzg@btinternet.com> | 2011-10-14 14:52:33 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2011-10-14 20:12:40 +0200 |
commit | eea064aea610ea41b5bda0b62dac56be536af9aa (patch) | |
tree | c25f765f3d6b0af8c4dd17764710baacc8799d7d | |
parent | 337496980e8ea75a123921a5a215ae8a962bf128 (diff) | |
download | ffmpeg-eea064aea610ea41b5bda0b62dac56be536af9aa.tar.gz |
dvbsubdec: Fix variable increments & checking in dvbsub_read_*bit_string()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavcodec/dvbsubdec.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/libavcodec/dvbsubdec.c b/libavcodec/dvbsubdec.c index ad213c88f1..4b6112682a 100644 --- a/libavcodec/dvbsubdec.c +++ b/libavcodec/dvbsubdec.c @@ -532,14 +532,14 @@ static int dvbsub_read_2bit_string(uint8_t *destbuf, int dbuf_len, } } } else if (bits == 1) { - pixels_read += 2; if (map_table) bits = map_table[0]; else bits = 0; - if (pixels_read <= dbuf_len) { - *destbuf++ = bits; + run_length = 2; + while (run_length-- > 0 && pixels_read < dbuf_len) { *destbuf++ = bits; + pixels_read++; } } else { (*srcbuf) += (get_bits_count(&gb) + 7) >> 3; @@ -656,14 +656,14 @@ static int dvbsub_read_4bit_string(uint8_t *destbuf, int dbuf_len, } } } else if (bits == 1) { - pixels_read += 2; if (map_table) bits = map_table[0]; else bits = 0; - if (pixels_read <= dbuf_len) { - *destbuf++ = bits; + run_length = 2; + while (run_length-- > 0 && pixels_read < dbuf_len) { *destbuf++ = bits; + pixels_read++; } } else { if (map_table) |