diff options
author | Vittorio Giovara <vittorio.giovara@gmail.com> | 2015-02-22 19:49:06 +0000 |
---|---|---|
committer | Vittorio Giovara <vittorio.giovara@gmail.com> | 2015-02-22 22:32:18 +0000 |
commit | e570f895cdccf2535a71fec1c607751ddb94fd5a (patch) | |
tree | 10a4afdb594f48323232eaba438da8aaba4ee3d6 | |
parent | 521979e6b1e7a89751aebc285a40d6508f8af48f (diff) | |
download | ffmpeg-e570f895cdccf2535a71fec1c607751ddb94fd5a.tar.gz |
libschroedinger: Check memory allocations
-rw-r--r-- | libavcodec/libschroedinger.c | 2 | ||||
-rw-r--r-- | libavcodec/libschroedingerdec.c | 2 | ||||
-rw-r--r-- | libavcodec/libschroedingerenc.c | 4 |
3 files changed, 8 insertions, 0 deletions
diff --git a/libavcodec/libschroedinger.c b/libavcodec/libschroedinger.c index fc9188cb8a..157433ea95 100644 --- a/libavcodec/libschroedinger.c +++ b/libavcodec/libschroedinger.c @@ -191,6 +191,8 @@ SchroFrame *ff_create_schro_frame(AVCodecContext *avctx, uv_height = y_height >> (SCHRO_FRAME_FORMAT_V_SHIFT(schro_frame_fmt)); p_pic = av_mallocz(sizeof(AVPicture)); + if (!p_pic) + return NULL; avpicture_alloc(p_pic, avctx->pix_fmt, y_width, y_height); p_frame = schro_frame_new(); diff --git a/libavcodec/libschroedingerdec.c b/libavcodec/libschroedingerdec.c index 0c5a3fb851..c61aaefafe 100644 --- a/libavcodec/libschroedingerdec.c +++ b/libavcodec/libschroedingerdec.c @@ -271,6 +271,8 @@ static int libschroedinger_decode_frame(AVCodecContext *avctx, /* Decoder needs a frame - create one and push it in. */ frame = ff_create_schro_frame(avctx, p_schro_params->frame_format); + if (!frame) + return AVERROR(ENOMEM); schro_decoder_add_output_picture(decoder, frame); break; diff --git a/libavcodec/libschroedingerenc.c b/libavcodec/libschroedingerenc.c index 3dc1481893..b2c492b990 100644 --- a/libavcodec/libschroedingerenc.c +++ b/libavcodec/libschroedingerenc.c @@ -283,6 +283,8 @@ static int libschroedinger_encode_frame(AVCodecContext *avctx, AVPacket *pkt, } else { /* Allocate frame data to schro input buffer. */ SchroFrame *in_frame = libschroedinger_frame_from_data(avctx, frame); + if (!in_frame) + return AVERROR(ENOMEM); /* Load next frame. */ schro_encoder_push_frame(encoder, in_frame); } @@ -331,6 +333,8 @@ static int libschroedinger_encode_frame(AVCodecContext *avctx, AVPacket *pkt, /* Create output frame. */ p_frame_output = av_mallocz(sizeof(FFSchroEncodedFrame)); + if (!p_frame_output) + return AVERROR(ENOMEM); /* Set output data. */ p_frame_output->size = p_schro_params->enc_buf_size; p_frame_output->p_encbuf = p_schro_params->enc_buf; |