On 08/24/2012 04:30 PM, Justin Ruggles wrote: > Ensure that padded_frame is freed before returning when needed. > --- > libavcodec/utils.c | 9 ++++++--- > 1 files changed, 6 insertions(+), 3 deletions(-) > > diff --git a/libavcodec/utils.c b/libavcodec/utils.c > index b5b0466..4fffca8 100644 > --- a/libavcodec/utils.c > +++ b/libavcodec/utils.c > @@ -954,8 +954,10 @@ int attribute_align_arg > avcodec_encode_audio2(AVCodecContext *avctx, > avctx->internal->last_audio_frame = 1; > } > > - if (frame->nb_samples != avctx->frame_size) > - return AVERROR(EINVAL); > + if (frame->nb_samples != avctx->frame_size) { > + ret = AVERROR(EINVAL); > + goto end; > + } > } > } > > @@ -986,7 +988,7 @@ int attribute_align_arg > avcodec_encode_audio2(AVCodecContext *avctx, > if (ret < 0 || !*got_packet_ptr) { > av_free_packet(avpkt); > av_init_packet(avpkt); > - return ret; > + goto end; > } > > /* NOTE: if we add any audio encoders which output non-keyframe packets, > @@ -994,6 +996,7 @@ int attribute_align_arg > avcodec_encode_audio2(AVCodecContext *avctx, > here to simplify things */ > avpkt->flags |= AV_PKT_FLAG_KEY; > > +end: > if (padded_frame) { > av_freep(&padded_frame->data[0]); > if (padded_frame->extended_data != padded_frame->data)
ping. -Justin _______________________________________________ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel