diff --git a/libavcodec/g2meet.c b/libavcodec/g2meet.c index 5c0b37d8af..6482483444 100644 --- a/libavcodec/g2meet.c +++ b/libavcodec/g2meet.c @@ -253,7 +253,8 @@ static int jpg_decode_data(JPGContext *c, int width, int height, return ret; jpg_unescape(src, src_size, c->buf, &unesc_size); memset(c->buf + unesc_size, 0, FF_INPUT_BUFFER_PADDING_SIZE); - init_get_bits8(&gb, c->buf, unesc_size); + if((ret = init_get_bits8(&gb, c->buf, unesc_size)) < 0) + return ret; width = FFALIGN(width, 16); mb_w = width >> 4; @@ -317,7 +318,7 @@ static int jpg_decode_data(JPGContext *c, int width, int height, return 0; } -static void kempf_restore_buf(const uint8_t *src, int len, +static int kempf_restore_buf(const uint8_t *src, int len, uint8_t *dst, int stride, const uint8_t *jpeg_tile, int tile_stride, int width, int height, @@ -325,8 +326,10 @@ static void kempf_restore_buf(const uint8_t *src, int len, { GetBitContext gb; int i, j, nb, col; + int ret; - init_get_bits8(&gb, src, len); + if ((ret = init_get_bits8(&gb, src, len)) < 0) + return ret; if (npal <= 2) nb = 1; else if (npal <= 4) nb = 2; @@ -344,6 +347,8 @@ static void kempf_restore_buf(const uint8_t *src, int len, memcpy(dst + i * 3, jpeg_tile + i * 3, 3); } } + + return 0; } static int kempf_decode_tile(G2MContext *c, int tile_x, int tile_y,