From patchwork Thu May 2 08:21:52 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 48467 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:c78e:b0:1af:7bf4:b644 with SMTP id hk14csp194865pzb; Thu, 2 May 2024 01:22:14 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXz9LBfd92KTd+IRD8XFWl6dSdd7CzKj7ayfi9JD3kDsjLx5/kkVhkH3063j+3fjE3pZ3yKcpNxu6ln4oGZC8Jsfa5O9IcjQD3Evw== X-Google-Smtp-Source: AGHT+IECFNxO/Lpq3yL/tOyptMdbb4J+4qq+j43G8EYJJeqhxmJtdRW4jNGu/Lcd9SAxcrPNorQT X-Received: by 2002:a05:6512:3fa:b0:51f:3a04:ba9b with SMTP id n26-20020a05651203fa00b0051f3a04ba9bmr497108lfq.22.1714638134355; Thu, 02 May 2024 01:22:14 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 6-20020a170906308600b00a55b0bfde13si268486ejv.520.2024.05.02.01.22.13; Thu, 02 May 2024 01:22:14 -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=@outlook.com header.s=selector1 header.b=BoSWOwE4; arc=fail (body hash mismatch); 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=QUARANTINE dis=NONE) header.from=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6BBE868D7AA; Thu, 2 May 2024 11:22:10 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR02-AM0-obe.outbound.protection.outlook.com (mail-am0eur02olkn2095.outbound.protection.outlook.com [40.92.49.95]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B684168D635 for ; Thu, 2 May 2024 11:22:02 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SQubRBMbKcRK+jcPXlz+8I44WEg7ICz2Ex58UWtGmzw0nzpCEOWzDNlvYIy/xSdmKmunlugfw43LFTqeUp5Q4POZ7rrcp7t2j1noqaKnPTZL6zhEEWN/Va9/fw3DTedH5hLZQYmtJ8A/29Or7cRZxC4Eo+f0nKO+1TFmp7ta9EtSxz5Ea4ER7ZkK5NnMLWumfF6JBMNk7+eOpk11m3BLLHVwlbswdQLtVPdqM+y2FouXK3YH20g1tdPG2vyn+pODAT0cino9z65X5GJTH5M0g9SeAwYETpL19VdsChTAt5AW0p94PlLZRE7Of6w+LWNz88wRMEqU93kXSq+tTpFfVA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=yvNLU+BUGIDh30OKJ5BkAXDMPj4gtPaanEaZoxf0UUM=; b=bCuT6kme5NECnY4YqMr9mWPWb6c0vTPEBx/xyQHWJRADL3MvexalgIIpHpp/0r6AtpsMjNym63YIVRwUXVU5pKq8v6xkbnbOihOghoKnqwLGNiUzxdxhQAL5rTyXOe/5jT1ACAE5Zhq6MuvGfOMTc0yJ8+tsUflfWg4HLXKdF9DfpiJsucv6SR8HvxWkAKrs7RidWTUhLMD88cLTKIMzvN2UEGvtEa/f02yjaLscR0gmZ9VbUKfds+LOzkrhlyxGHuttoqirW54sBSdFwHrOInEbpwo+Q9zbHeP6evEpLsjBmEAmLpL5jYwaTseIk4UCfhXZd0MvRbeDL8pRG4SQAQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=yvNLU+BUGIDh30OKJ5BkAXDMPj4gtPaanEaZoxf0UUM=; b=BoSWOwE4Lc9YdFLe4dcRnnHGI8GjQiQKp2+jma4udraEAk2KvDjV+C7hQ+IX6DBxg3CYft/ObRIl+l1TwiO7Hl3WNopV96QNzJuM3rI4h95BJM372Ri6LPHA3pC6hoL06341oGz5Nf5hgLF0BrA0KkBlGSqpbhGN3mojRO+TKy1077wwsIM9QEK6t9G434efyOQ0NAyxtMmuUWA9HoYRCYQmBSiSiLJLTi+cjpzO181GvPOxknIVaZGSXAkLNwV+cKYrYQ1nW0VpEnHdpbadezg5CT4SxU1rwthT3ZY7poc1ilbdccslscsTf6Zg/aLbvCk5T9vj8/dNsIwXllsz8w== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by AM8P250MB0140.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:323::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.26; Thu, 2 May 2024 08:22:00 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::1f29:8206:b8c3:45bb]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::1f29:8206:b8c3:45bb%3]) with mapi id 15.20.7519.031; Thu, 2 May 2024 08:22:00 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 2 May 2024 10:21:52 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 X-TMN: [EA8W3QmyLdnR33sHV/UT2lScPJU3JNhKjLOxIaRF0/w=] X-ClientProxiedBy: ZR0P278CA0119.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:20::16) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20240502082152.168801-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|AM8P250MB0140:EE_ X-MS-Office365-Filtering-Correlation-Id: 07f28162-e3a6-4613-126a-08dc6a80f07f X-Microsoft-Antispam: BCL:0; ARA:14566002|461199019|3412199016|440099019|1710799017; X-Microsoft-Antispam-Message-Info: DkOnn0jJAyOXghY/pUxVaxISyc4hkWxhX5wWj/ATG80MnHhnMLQThQOsEwTwrDoHFh2koOCLtRpjVYvrE/R/PirJk5BlYmflvAGmxnsCC+1m5m+BYc6ruc9B2exs67ckTpApGYOMQu4SfGlu6mFL2GwT1SGDLdpxCknwyN6PrMvrQRyJmY5sx+kSYKCydpQEhh09pj3JcqU1Ak+aN7B/QUETuqW4Udoc8hGcUfc62v3IHuV7nrCp2+zBcPc21kAd9/FYIScRF3WMZZJx1VZQe9lKYWHMHFJVtxxNIneIlNzKbajAbS3bZAFy1GdWPgftOJENewlL7pHchjY3YdcNJOE+dgEDzQKqBiOa94s9682ZljcJvteitHSQ3h3tB05pGeEpFWniiXQyLib48X5akCMQZyNkPNDE3TCCmgsaLslFah9UIfcQbljXe38ydQ8F6air5va5sF6/OOOZDrtT1UIdarZcdJC0tVzxwdKOhZ4tADvqTydaU23y7wK8z2TBpeS7wnsXhJn3UDXWS2AQIgE3FSEqsg4b6Dz0jWmhTG7ME0IjsL+wusTn+vM0zakJP9u8WTzv1CF7xZOdaUnrvUAdquVBPLqMALrbE11MGFhJSt/+O+dq8/WpxSm3FVlz X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: CCPmN3iJMLIoUiZ8BdYLC4iGhdwUXqjsPyTzBRQfYgMFNr986q5dPeZS0b2N2WN1nqUFcU/UJaRYlOGHOb//SEnYI1W/J+njrJWqLEMRXFx8cvke6ChF7ILPTvJFkOdHSkECfiIf7G3xVBqneeIaFIr7RrvPAyT/4uERudfgCNGneyn82cJ9JnvhWp7Mv8okStVtVhU85T2lV7lvn8GCIdF2KcFtY+9HwWC20M2xz9sCnD9AacQXNbOlSicqoD+oQR4c3DSOlkdQDjMltfSbqRaUQbU0Z0wBE9Z4eEOmQPMtEW5nVST8zyCVIoXfUHg+AxptMlFagKQZPjqsnyFtCfrX7xuZc9dP9BMluNCxmz8vdJSGxXhLBzAtnlL153NDRL4hhoViyxUzr+GpdW60IjFHNsVeadkMiu1VolopabMl8iS0SMBzy1/speSWQ7ka1geF7hoXGXs4OEGz+LIOX/1s8II9kSSa5jjSyMZzYpU2nnosLJAMXgcxyKGvLvjQGvTRuErbjmKqWsJTJx678HEFXcliJiKqj0F6LnBG9SwYIsI8imxoiBjDw7CdqIfWjii5Ketpg0MsQNF3nVXM1Pmhc4s2IW9iKvE0bgt5SHH1fahz/ukCKN9EZ0WJxwByPMFKsLbE9N1BkqTPCyMRih3QzMrl4Sqf90WuBMjVxbKnWBQ6EOB/8gFdz/DGeyFB9GGtOf53XUj2jWmPdxsdoWTx58vi3d4eocgROvnSS2gf463P7VbGFmK2V7Na/X2tfIa4tEqPD1c/KHF7CbGIspJlT+AmtYDiiuce/xFcohpJmOSHYuiGwg1imW0hnrsUHsBwiD8pEPUlrvgvMy/jjR9zPro5bwy5i9H6o3z8iOvV9uPnL0YB6HmmnE8jj1CjXNEB/vSv1lJylVwK+Yqe7AF8mPsEC/6so+fvz8BUQzDG/1vSwcoSBRMi2VT4nouPOF2fBxG+tVcIPBmYYf85P6OUv8+Ooc73cMLgR6fe7s4ex5lAOqTKUTm1ect0TN6/OuseULSGpzBATn4kN3dCoNukiqmb1a1MU3wYOpzQPngcKhKNv/vwzkZETWajhbywxa05zfqTbTVNdMji4rF+XVALPTJDX3qJ5JGKo3DIe8EWEasgl0kAlKoGKCCz+xLE2xDn2JylxcV4XS9rNpGjN7QLLON2KJR6Dz6MpsInKz21lTuoredxnRSad65u+FizRhddJAAz+BaQHIjW2YLi/9rgqwLXqZkBe4CPw1Ikgii6+ANkuQxgWh7DUIRj55YuEfHWSVfzI6HP6txktUZa+g== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 07f28162-e3a6-4613-126a-08dc6a80f07f X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 May 2024 08:22:00.4811 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8P250MB0140 Subject: [FFmpeg-devel] [PATCH] avcodec/av1dec: Always set ret before goto end 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: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: j4tdAM3SWZbT Before 0f8763fbea4e8816cd54c2a481d4c048fec58394, av1_frame_ref() and update_reference_list() could fail and therefore needed to be checked, which incidentally set ret. This is no longer happening, leading to a potential use of an uninitialized value which is also the subject of Coverity ticket #1596605. Fix this by always setting ret before goto end; do not return some random ancient value. Signed-off-by: Andreas Rheinhardt --- libavcodec/av1dec.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/libavcodec/av1dec.c b/libavcodec/av1dec.c index 79a30a114d..c3f255a29a 100644 --- a/libavcodec/av1dec.c +++ b/libavcodec/av1dec.c @@ -1335,6 +1335,12 @@ static int av1_receive_frame_internal(AVCodecContext *avctx, AVFrame *frame) ret = set_output_frame(avctx, frame); if (ret < 0) av_log(avctx, AV_LOG_ERROR, "Set output frame error.\n"); + } else { + // CBS checks for us that the frame to be shown actually existed + // in the bitstream; if it doesn't it could be e.g. due to + // skip_frame setting. Return EAGAIN to indicate that we are + // currently unable to produce output. + ret = AVERROR(EAGAIN); } s->raw_frame_header = NULL; @@ -1439,13 +1445,15 @@ static int av1_receive_frame_internal(AVCodecContext *avctx, AVFrame *frame) update_reference_list(avctx); - if (s->raw_frame_header->show_frame && s->cur_frame.f) { + // cur_frame.f needn't exist due to skip_frame. + if (show_frame && s->cur_frame.f) { ret = set_output_frame(avctx, frame); if (ret < 0) { av_log(avctx, AV_LOG_ERROR, "Set output frame error\n"); goto end; } - } + } else + ret = AVERROR(EAGAIN); raw_tile_group = NULL; s->raw_frame_header = NULL; if (show_frame) {