From patchwork Fri Jun 24 14:42:01 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 36412 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:8b27:b0:88:1bbf:7fd2 with SMTP id l39csp345553pzh; Fri, 24 Jun 2022 07:42:25 -0700 (PDT) X-Google-Smtp-Source: AGRyM1tvxI1PEGOINkrDJkZBS5V7R/MjrUkpINgGflbaFSHR8goGZCKxw0XwCWTSPXsX/V2AVTwE X-Received: by 2002:a17:907:724e:b0:70f:29c0:3a03 with SMTP id ds14-20020a170907724e00b0070f29c03a03mr13366328ejc.673.1656081745195; Fri, 24 Jun 2022 07:42:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1656081745; cv=none; d=google.com; s=arc-20160816; b=laiY9TTZ2gQdPHkSDU+oaPKSl0bRY+F1kJEG8ZYgvMLXmcjAgw5ggB1H+02eF3i22Y TUCtdEHtgNdSfX/kMQl7L/GIS66miVnAwQ1OKmDRrIdrEfYMD69MHaads68ePafBW2W4 fIduBD3Z4RRv7qValpCS33oIRdVB3JIWi3skD5ZxG0fVtFdCvo22LnXjVVfnHAKW36SI GUbH3lWAB/n69qvnS3dySyLgt8ekLeejwCgwmjSKR/GRZiVkZSLMUQBXMa3rg7c6mNq4 VNTljbY+gSz/chhhjuBfzyJtuFWnZW23Gjt4yVsmjK0eA/Qa6f6ZacYn/GKZ1ojyoS27 LGXQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:date:to:from:message-id :dkim-signature:delivered-to; bh=8kz/F0VDQO7CzQnFtE+uVZBRUORVABenEdyTtAbe/HQ=; b=lWz0JgaU7bIYLhP4gXEiLJi6EKjtryWwX2QBGCChbyDOaViXxAQKx0mw7Wt0e+mQxP FGLRKy848IuMCaIlE0OG0rrDS+mKZYJfKG8qOs5EuCUQ/yRHZOzzLvbiYeklzzCkeb/3 GIiTE5hUrEbguQT+U2uqid8B/5JT3+mqyr8kqCSPwHZkZfyayMw+s5cc8LTz2MQxZGU/ p7jJDTG9YKgnHgB3ZHweIP+jOm199Vffbnh6Ox+592vyjwokk9bZZFZimCNg28vFFIRX FdUe8u1UMsXvlwXgcKg/2On0k2ACVwNcwFnIuI5dOL0t5ASl28Cl5cSwGiFfc2fB7jZp 3frw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=vGUjCa4f; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=foxmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id d26-20020a50fb1a000000b0043574d16cfbsi3264906edq.200.2022.06.24.07.42.24; Fri, 24 Jun 2022 07:42:25 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=vGUjCa4f; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=foxmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E65B568B642; Fri, 24 Jun 2022 17:42:19 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out162-62-58-211.mail.qq.com (out162-62-58-211.mail.qq.com [162.62.58.211]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DD4FC68A214 for ; Fri, 24 Jun 2022 17:42:11 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1656081726; bh=jCdVJgLLFIqJFpu7AmLHR5uZiTR9T2gZGKhfL+f6Be4=; h=From:To:Cc:Subject:Date; b=vGUjCa4fY4vPcKzHrPNmLYY2kFWyiaKR/AJFM5E9hsJVvt4PsrQ0cXgBPEKhCgS8U JcahBEPJx2C0kfaiQoZNJJ+XGOq/PqsvoQszy9IQtjk2wgZw6Ldj98CfE/BBtQowIz BGNWI16WxJv72pzVuW4JT3Gy2jgX8NfNftGsD9mg= Received: from ZHILIZHAO-PC2.localdomain ([113.108.77.72]) by newxmesmtplogicsvrsza30.qq.com (NewEsmtp) with SMTP id A85B7A79; Fri, 24 Jun 2022 22:42:05 +0800 X-QQ-mid: xmsmtpt1656081725t5a6lw2aa Message-ID: X-QQ-XMAILINFO: MW5hkHoBpWXyJQrTmLkoYoYuqyY3VpAvOsodrU/wMG3UH9UXF0WofbSCvUHKct YZKQw14eK3QBSoow2YWtnqnXo+8Fp5RUKn6fb0h8fxWKT3WX54op4uLiF2xVHuqVFbn6VWFHilkA YGUL7Zo1TrYvEHBx52+uYH22kUJFe/gm0cDTemwiO7DhWnHnzm3TNIpP3ohYRs5+CokwEG+Hljzr hmZOyEeQsFp3dnPrsoRwvjw0LDzPEG383uIOIkCgghtffBLKvcSI4iaKid9eUI9mPFfVYl8+VxEi hHRSz4rwGhmhphx2C4hlcAoOSNtqTHRJuRs2w1Ky9vT9S9nid0rFK4uzmifZ+EW+phhNmRVJcXXD NnPmpZDjQ0j0TrQBUuhzhNraGhrOxqMrMDZLg7ctwu/groyVV+aXcN1AunHqa5JxJ2FPTGkD31jl 4a+xrePMWy54D0vu/fp+/BsbLDnkTl+oy0UqcJw6GFjZ/gfKr+j6lS67yxknLlI6LkJGp5OM4wm8 LQE1KvU4sICMhUU/v/4YmJYAxm0M2Qn4nZILkgPdWhI2hL1q2Ppeb7GzU2szM5GZsylGVaOmvpaw Us2b+yFFEDjcuibkxSpBt2NanCg/yI6waMZrcPizYRdk+yFuPlF7eoZ3VS+6LXTgUP0ZvnX+0+NF Y1mbXskP3OMz6ve6nBojewyN3uhGSw0l8MgFbGpV1R01+7uMprp1dw1a7NKEBogI0hVn6+xnlbbS hBv6PMeMrznEIXeIm+hl5mPTzVMWKXGPMSaGK3tqOpsNwXvKIcHyzr3iyDvmBwBUQaFJhE5+kXrd KoFyNAmRQeRaaOMpI3RU+pMF+JMty+RTwb/EOyKScJKyp/nCYXZ4P5UAbEcD3JGGYu1FaKby4kBZ ixRmQbOJ62gsoMeubjuJSgaVjPudQ8rl7B0RpoOO9L4YsQLtoVOk3SNka5SDC6hCKAOtGnPBN/ From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Fri, 24 Jun 2022 22:42:01 +0800 X-OQ-MSGID: <20220624144202.32164-1-quinkblack@foxmail.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/2] avcodec/cuviddec: fix null pointer dereference X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Zhao Zhili Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: vxcvdZttAzfY From: Zhao Zhili It can happened on error path of cuvid_decode_init(). --- libavcodec/cuviddec.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/libavcodec/cuviddec.c b/libavcodec/cuviddec.c index fc9c0515fe..2f6bbdc7d8 100644 --- a/libavcodec/cuviddec.c +++ b/libavcodec/cuviddec.c @@ -655,12 +655,13 @@ error: static av_cold int cuvid_decode_end(AVCodecContext *avctx) { CuvidContext *ctx = avctx->priv_data; - AVHWDeviceContext *device_ctx = (AVHWDeviceContext *)ctx->hwdevice->data; - AVCUDADeviceContext *device_hwctx = device_ctx->hwctx; - CUcontext dummy, cuda_ctx = device_hwctx->cuda_ctx; + AVHWDeviceContext *device_ctx = ctx->hwdevice ? (AVHWDeviceContext *)ctx->hwdevice->data : NULL; + AVCUDADeviceContext *device_hwctx = device_ctx ? device_ctx->hwctx : NULL; + CUcontext dummy, cuda_ctx = device_hwctx ? device_hwctx->cuda_ctx : NULL; av_fifo_freep2(&ctx->frame_queue); + if (cuda_ctx) { ctx->cudl->cuCtxPushCurrent(cuda_ctx); if (ctx->cuparser) @@ -670,6 +671,7 @@ static av_cold int cuvid_decode_end(AVCodecContext *avctx) ctx->cvdl->cuvidDestroyDecoder(ctx->cudecoder); ctx->cudl->cuCtxPopCurrent(&dummy); + } ctx->cudl = NULL;