Message ID | 20201014001950.287601-1-chris@miceli.net.au |
---|---|
State | Accepted |
Commit | ad95e5e45dbb3c3dddc3e2c3fe93bc98f239bd29 |
Headers | show |
Series | [FFmpeg-devel] libavfilter/dnn_backend_native: check mem allocation | expand |
> -----Original Message----- > From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of Chris > Miceli > Sent: 2020年10月14日 8:20 > To: ffmpeg-devel@ffmpeg.org > Cc: Chris Miceli <chris@miceli.net.au> > Subject: [FFmpeg-devel] [PATCH] libavfilter/dnn_backend_native: check mem > allocation > > check that frame allocations return non-null. > --- > libavfilter/dnn/dnn_backend_native.c | 17 ++++++++++++++++- > 1 file changed, 16 insertions(+), 1 deletion(-) > > diff --git a/libavfilter/dnn/dnn_backend_native.c > b/libavfilter/dnn/dnn_backend_native.c > index d45e211f0c..4fc3ba2044 100644 > --- a/libavfilter/dnn/dnn_backend_native.c > +++ b/libavfilter/dnn/dnn_backend_native.c > @@ -79,8 +79,23 @@ static DNNReturnType get_output_native(void *model, > const char *input_name, int { > DNNReturnType ret; > NativeModel *native_model = (NativeModel *)model; > + NativeContext *ctx = &native_model->ctx; > AVFrame *in_frame = av_frame_alloc(); > - AVFrame *out_frame = av_frame_alloc(); > + AVFrame *out_frame = NULL; > + > + if (!in_frame) { > + av_log(ctx, AV_LOG_ERROR, "Could not allocate memory for input > frame\n"); > + return DNN_ERROR; > + } > + > + out_frame = av_frame_alloc(); > + > + if (!out_frame) { > + av_log(ctx, AV_LOG_ERROR, "Could not allocate memory for output > frame\n"); > + av_frame_free(&in_frame); > + return DNN_ERROR; > + } > + LGTM, will push soon, thanks.
diff --git a/libavfilter/dnn/dnn_backend_native.c b/libavfilter/dnn/dnn_backend_native.c index d45e211f0c..4fc3ba2044 100644 --- a/libavfilter/dnn/dnn_backend_native.c +++ b/libavfilter/dnn/dnn_backend_native.c @@ -79,8 +79,23 @@ static DNNReturnType get_output_native(void *model, const char *input_name, int { DNNReturnType ret; NativeModel *native_model = (NativeModel *)model; + NativeContext *ctx = &native_model->ctx; AVFrame *in_frame = av_frame_alloc(); - AVFrame *out_frame = av_frame_alloc(); + AVFrame *out_frame = NULL; + + if (!in_frame) { + av_log(ctx, AV_LOG_ERROR, "Could not allocate memory for input frame\n"); + return DNN_ERROR; + } + + out_frame = av_frame_alloc(); + + if (!out_frame) { + av_log(ctx, AV_LOG_ERROR, "Could not allocate memory for output frame\n"); + av_frame_free(&in_frame); + return DNN_ERROR; + } + in_frame->width = input_width; in_frame->height = input_height;