Message ID | DB6PR0101MB221474606A0828BDFA25A6348F619@DB6PR0101MB2214.eurprd01.prod.exchangelabs.com |
---|---|
State | Accepted |
Commit | d3730acca3a749204f0c312f1be6f4e5f3296f22 |
Headers | show |
Series | [FFmpeg-devel,1/3] avcodec/nvdec: Check av_buffer_ref() | expand |
Context | Check | Description |
---|---|---|
yinshiyou/make_loongarch64 | success | Make finished |
yinshiyou/make_fate_loongarch64 | success | Make fate finished |
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
diff --git a/libavcodec/nvdec.c b/libavcodec/nvdec.c index edff46d310..15665b83bb 100644 --- a/libavcodec/nvdec.c +++ b/libavcodec/nvdec.c @@ -532,8 +532,11 @@ static int nvdec_retrieve_data(void *logctx, AVFrame *frame) } unmap_data->idx = cf->idx; - unmap_data->idx_ref = av_buffer_ref(cf->idx_ref); - unmap_data->decoder_ref = av_buffer_ref(cf->decoder_ref); + if (!(unmap_data->idx_ref = av_buffer_ref(cf->idx_ref)) || + !(unmap_data->decoder_ref = av_buffer_ref(cf->decoder_ref))) { + ret = AVERROR(ENOMEM); + goto copy_fail; + } av_pix_fmt_get_chroma_sub_sample(hwctx->sw_format, &shift_h, &shift_v); for (i = 0; frame->linesize[i]; i++) {
It (unfortunately) involves an allocation and can therefore fail. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> --- I don't have any nvidia hardware, so all these patches are untested (apart from ensuring that they compile without creating new warnings). libavcodec/nvdec.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)