mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
Check the return value of ff_rv34_decode_init() in rv30.c and rv40.c
Avoids possible null pointer dereferences on oom. Fixes ticket #2727.
This commit is contained in:
parent
5d3c3035b7
commit
b86651a208
@ -248,9 +248,12 @@ static void rv30_loop_filter(RV34DecContext *r, int row)
|
||||
static av_cold int rv30_decode_init(AVCodecContext *avctx)
|
||||
{
|
||||
RV34DecContext *r = avctx->priv_data;
|
||||
int ret;
|
||||
|
||||
r->rv30 = 1;
|
||||
ff_rv34_decode_init(avctx);
|
||||
ret = ff_rv34_decode_init(avctx);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
if(avctx->extradata_size < 2){
|
||||
av_log(avctx, AV_LOG_ERROR, "Extradata is too small.\n");
|
||||
return -1;
|
||||
|
@ -547,9 +547,12 @@ static void rv40_loop_filter(RV34DecContext *r, int row)
|
||||
static av_cold int rv40_decode_init(AVCodecContext *avctx)
|
||||
{
|
||||
RV34DecContext *r = avctx->priv_data;
|
||||
int ret;
|
||||
|
||||
r->rv30 = 0;
|
||||
ff_rv34_decode_init(avctx);
|
||||
ret = ff_rv34_decode_init(avctx);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
if(!aic_top_vlc.bits)
|
||||
rv40_init_tables();
|
||||
r->parse_slice_header = rv40_parse_slice_header;
|
||||
|
Loading…
Reference in New Issue
Block a user