Browse Source

dvbsubdec: pass correct input buffer size

In some places, dvbsubdec passes improper input buffer size to
bitstream reading functions, not accounting for reading pointer
updates.

Fixed by using buffer_end - buffer pointer instead of fixed buffer length.

Signed-off-by: Jindrich Makovicka <makovick@gmail.com>
Signed-off-by: Mans Rullgard <mans@mansr.com>
tags/n0.8
Jindrich Makovicka Mans Rullgard 15 years ago
parent
commit
5bea615dc3
1 changed files with 3 additions and 3 deletions
  1. +3
    -3
      libavcodec/dvbsubdec.c

+ 3
- 3
libavcodec/dvbsubdec.c View File

@@ -792,7 +792,7 @@ static void dvbsub_parse_pixel_data_block(AVCodecContext *avctx, DVBSubObjectDis
map_table = NULL;

x_pos += dvbsub_read_2bit_string(pbuf + (y_pos * region->width) + x_pos,
region->width - x_pos, &buf, buf_size,
region->width - x_pos, &buf, buf_end - buf,
non_mod, map_table);
break;
case 0x11:
@@ -807,7 +807,7 @@ static void dvbsub_parse_pixel_data_block(AVCodecContext *avctx, DVBSubObjectDis
map_table = NULL;

x_pos += dvbsub_read_4bit_string(pbuf + (y_pos * region->width) + x_pos,
region->width - x_pos, &buf, buf_size,
region->width - x_pos, &buf, buf_end - buf,
non_mod, map_table);
break;
case 0x12:
@@ -817,7 +817,7 @@ static void dvbsub_parse_pixel_data_block(AVCodecContext *avctx, DVBSubObjectDis
}

x_pos += dvbsub_read_8bit_string(pbuf + (y_pos * region->width) + x_pos,
region->width - x_pos, &buf, buf_size,
region->width - x_pos, &buf, buf_end - buf,
non_mod, NULL);
break;



Loading…
Cancel
Save