2019-04-10 13:27 GMT+02:00, Linjie Fu <[email protected]>: > frame->enc_ctrl.Payload is malloced in get_free_frame, directly memset > the whole structure of enc_ctrl to zero will cause the memory leak for > enc_ctrl.Payload. > > Fix the memory leak issue and reset other members in mfxEncodeCtrl. > > Signed-off-by: Linjie Fu <[email protected]> > --- > libavcodec/qsvenc.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c > index 5aa020d47b..029bb562d6 100644 > --- a/libavcodec/qsvenc.c > +++ b/libavcodec/qsvenc.c > @@ -1254,7 +1254,7 @@ static int encode_frame(AVCodecContext *avctx, > QSVEncContext *q, > if (qsv_frame) { > surf = &qsv_frame->surface; > enc_ctrl = &qsv_frame->enc_ctrl; > - memset(enc_ctrl, 0, sizeof(mfxEncodeCtrl)); > + memset(enc_ctrl, 0, sizeof(mfxEncodeCtrl) - sizeof(mfxPayload **));
Am I correct that this assumes a particular order of contents in a struct not defined within FFmpeg? Maybe saving the pointer in a variable and writing it back is more future proof? Carl Eugen _______________________________________________ ffmpeg-devel mailing list [email protected] https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email [email protected] with subject "unsubscribe".
