diff --git a/libavcodec/libxvid.c b/libavcodec/libxvid.c index 64572daac9..7669fee943 100644 --- a/libavcodec/libxvid.c +++ b/libavcodec/libxvid.c @@ -287,6 +287,8 @@ static int xvid_strip_vol_header(AVCodecContext *avctx, AVPacket *pkt, /* We need to store the header, so extract it */ if (!avctx->extradata) { avctx->extradata = av_malloc(vo_len); + if (!avctx->extradata) + return AVERROR(ENOMEM); memcpy(avctx->extradata, pkt->data, vo_len); avctx->extradata_size = vo_len; } @@ -625,11 +627,19 @@ static av_cold int xvid_encode_init(AVCodecContext *avctx) if (avctx->intra_matrix) { intra = avctx->intra_matrix; x->intra_matrix = av_malloc(sizeof(unsigned char) * 64); + if (!x->intra_matrix) { + ret = AVERROR(ENOMEM); + goto fail; + } } else intra = NULL; if (avctx->inter_matrix) { inter = avctx->inter_matrix; x->inter_matrix = av_malloc(sizeof(unsigned char) * 64); + if (!x->inter_matrix) { + ret = AVERROR(ENOMEM); + goto fail; + } } else inter = NULL;