libschroedinger: Check memory allocations

pull/113/head^2
Vittorio Giovara 10 years ago
parent 521979e6b1
commit e570f895cd
  1. 2
      libavcodec/libschroedinger.c
  2. 2
      libavcodec/libschroedingerdec.c
  3. 4
      libavcodec/libschroedingerenc.c

@ -191,6 +191,8 @@ SchroFrame *ff_create_schro_frame(AVCodecContext *avctx,
uv_height = y_height >> (SCHRO_FRAME_FORMAT_V_SHIFT(schro_frame_fmt)); uv_height = y_height >> (SCHRO_FRAME_FORMAT_V_SHIFT(schro_frame_fmt));
p_pic = av_mallocz(sizeof(AVPicture)); p_pic = av_mallocz(sizeof(AVPicture));
if (!p_pic)
return NULL;
avpicture_alloc(p_pic, avctx->pix_fmt, y_width, y_height); avpicture_alloc(p_pic, avctx->pix_fmt, y_width, y_height);
p_frame = schro_frame_new(); p_frame = schro_frame_new();

@ -271,6 +271,8 @@ static int libschroedinger_decode_frame(AVCodecContext *avctx,
/* Decoder needs a frame - create one and push it in. */ /* Decoder needs a frame - create one and push it in. */
frame = ff_create_schro_frame(avctx, frame = ff_create_schro_frame(avctx,
p_schro_params->frame_format); p_schro_params->frame_format);
if (!frame)
return AVERROR(ENOMEM);
schro_decoder_add_output_picture(decoder, frame); schro_decoder_add_output_picture(decoder, frame);
break; break;

@ -283,6 +283,8 @@ static int libschroedinger_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
} else { } else {
/* Allocate frame data to schro input buffer. */ /* Allocate frame data to schro input buffer. */
SchroFrame *in_frame = libschroedinger_frame_from_data(avctx, frame); SchroFrame *in_frame = libschroedinger_frame_from_data(avctx, frame);
if (!in_frame)
return AVERROR(ENOMEM);
/* Load next frame. */ /* Load next frame. */
schro_encoder_push_frame(encoder, in_frame); schro_encoder_push_frame(encoder, in_frame);
} }
@ -331,6 +333,8 @@ static int libschroedinger_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
/* Create output frame. */ /* Create output frame. */
p_frame_output = av_mallocz(sizeof(FFSchroEncodedFrame)); p_frame_output = av_mallocz(sizeof(FFSchroEncodedFrame));
if (!p_frame_output)
return AVERROR(ENOMEM);
/* Set output data. */ /* Set output data. */
p_frame_output->size = p_schro_params->enc_buf_size; p_frame_output->size = p_schro_params->enc_buf_size;
p_frame_output->p_encbuf = p_schro_params->enc_buf; p_frame_output->p_encbuf = p_schro_params->enc_buf;

Loading…
Cancel
Save