From 10b3c9b533d9beb5cff732fa57011fcb182ea17d Mon Sep 17 00:00:00 2001 From: Lynne Date: Sun, 22 Nov 2020 22:56:33 +0100 Subject: hwcontext_vulkan: do not use uninitialized variables on errors in CUDA code --- libavutil/hwcontext_vulkan.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'libavutil') diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c index a98ea916e7..ed39e7b8ea 100644 --- a/libavutil/hwcontext_vulkan.c +++ b/libavutil/hwcontext_vulkan.c @@ -2409,17 +2409,17 @@ static int vulkan_transfer_data_from_cuda(AVHWFramesContext *hwfc, CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS s_s_par[AV_NUM_DATA_POINTERS] = { 0 }; ret = CHECK_CU(cu->cuCtxPushCurrent(cuda_dev->cuda_ctx)); - if (ret < 0) { - err = AVERROR_EXTERNAL; - goto fail; - } + if (ret < 0) + return AVERROR_EXTERNAL; dst_f = (AVVkFrame *)dst->data[0]; ret = vulkan_export_to_cuda(hwfc, src->hw_frames_ctx, dst); if (ret < 0) { - goto fail; + CHECK_CU(cu->cuCtxPopCurrent(&dummy)); + return ret; } + dst_int = dst_f->internal; ret = CHECK_CU(cu->cuWaitExternalSemaphoresAsync(dst_int->cu_sem, s_w_par, @@ -3120,16 +3120,15 @@ static int vulkan_transfer_data_to_cuda(AVHWFramesContext *hwfc, AVFrame *dst, CudaFunctions *cu = cu_internal->cuda_dl; ret = CHECK_CU(cu->cuCtxPushCurrent(cuda_dev->cuda_ctx)); - if (ret < 0) { - err = AVERROR_EXTERNAL; - goto fail; - } + if (ret < 0) + return AVERROR_EXTERNAL; dst_f = (AVVkFrame *)src->data[0]; err = vulkan_export_to_cuda(hwfc, dst->hw_frames_ctx, src); if (err < 0) { - goto fail; + CHECK_CU(cu->cuCtxPopCurrent(&dummy)); + return err; } dst_int = dst_f->internal; -- cgit v1.2.3