From patchwork Mon Apr 8 20:13: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: 47950 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:3f98:b0:1a7:a0dc:8de5 with SMTP id ay24csp136379pzb; Mon, 8 Apr 2024 13:16:30 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUDXr0LefaIu4L+LV/t0uxhZuuiW8iEewoAk340TkqogzgducU3SP6LrEevbRxV/JPv2hQAi41fSD9P3EzmidxaCyMKs69MRP0I6g== X-Google-Smtp-Source: AGHT+IGmJ2+fkV4VWccvfNpwFXi44CqKVc9MxOcDrzAb+5qU0otF1RVmpZrGAdsRcSlytV6Nm1IL X-Received: by 2002:a19:2d1d:0:b0:513:8266:f5d7 with SMTP id k29-20020a192d1d000000b005138266f5d7mr7422431lfj.3.1712607390227; Mon, 08 Apr 2024 13:16:30 -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 o15-20020ac2434f000000b00516cf12bb83si2359029lfl.547.2024.04.08.13.16.29; Mon, 08 Apr 2024 13:16:30 -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=A7rrYW12; 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 C7C1768D3BE; Mon, 8 Apr 2024 23:15:18 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01olkn2044.outbound.protection.outlook.com [40.92.66.44]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id AC64A68D3A1 for ; Mon, 8 Apr 2024 23:15:13 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YmG9y9QgNK06bEUkxuPgf9nhm6qfRyFdG5OxsHbd1blV9iN76swPcA7NcAFgo3tj0i5zwkjrzJdrgeqlEV2ZZlToXOjc+4zh1tnrOARBiJ9HTT+DSOxDt0HQVNgb+g9E7Gt0nPLWyxlrzfRLFgfaqLD+HOsAWdNdld15HjK85gof/QEkxjm/qr12xKJC8PTKeQMfTUrnTLxYW5PnF8A1o5DbqAP1Y8gtuD4S+CU0zyb5N/vUbDPRAE8HcXrtN4knzMDSY6DNFUP/jq3lW+nbd4NdjWiU4fPnYA8XCpAAfD41QT1RjhCSA3QeANP7yH4tfmNpVk09lSQZkwq7ecLlNQ== 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=mdoOfA2/R/6W+fWU5o0VPBSo5U/3fE7H4NqdPNg9xtA=; b=nymbo04SI+XHfpnDI58jWIDq9ADe2T+0ExVra58wQiPzCsDE0xUIOALDSuyilKSwK41i+EWwRA6wVhrMXzdluIC+H30I9W0veCNZG9CT4EGAp8zH9bXRYsEXuuBJzZoDjkdKWWHR5d+/+jJ57u8lXQYtRfDRQA5q8uFq0bm+unokLsY1hroPNTyYobXUUb8GeU6+r8PFSrspOSsxZrJA75ur7GUufsgs7ZrFdLiIB6VC81zbGgTBRZOwPZ9EG1qtWcomnqM3lEt1o19Ds2tocVaeaxIyVGT7wUBVp7ERNuZ+mSsuNDca3lE2UTjDEzZhLq3UCaglgQbmWglyo3Slkg== 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=mdoOfA2/R/6W+fWU5o0VPBSo5U/3fE7H4NqdPNg9xtA=; b=A7rrYW12lEe2MHjI8oAeR9IC58bq3V1FjdeKeJeu0RzYZEUneM4E+1iEGu3tOJLGE6MGJXpFhKF/J31rWyvLpHzDge54pm2Gyr2sGRYpX9p/WPMRo0rtGcmyf3OGEtlWx/c0hkwR52rPugFvDSQtqjb4NYDoYsYpwr0DWuA0m5IVZJrf8n8XoGR12vIqKNlzV4b0yxkc72dbGhgz9GHhrhqo2kI6R3hYNjfu/5+caXz2ucoKzcjGvbFz03chHwMLkTLUCMAybdC+8o5sDsVoRGgzRT0XcbDdaVYhKY6lEVImRslDB/rDcodFeAIxkT4rFBJxkYsao0fkcM0CxJnVcA== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by PAXP250MB0494.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:28d::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.46; Mon, 8 Apr 2024 20:15:10 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d%4]) with mapi id 15.20.7409.042; Mon, 8 Apr 2024 20:15:10 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 8 Apr 2024 22:13:52 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [yWAUjkxDA1P47Or9TAwgcanRYUrJmEeOVa1WHhOdms4=] X-ClientProxiedBy: ZR0P278CA0124.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:20::21) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20240408201405.2136840-13-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|PAXP250MB0494:EE_ X-MS-Office365-Filtering-Correlation-Id: 355d36b6-d86d-4b45-73bc-08dc58089745 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ishR+hpcOks11GAFHRR/9irx1IbtqmEIjLo3p0VuGEHce3O7lM4r1Jo6zFH+9WPkcl3KkzbxsAbhsZfA7G3uIAFXMbhL3pQ4JXTZUzoeSjc7pG9iXIuVLxxfJPf56vdse179GEfI0phqXMvdpqiPnn4FWwstvBsdPwsTMVvVxtXZuP3BIyAO00c2Btz2Gb8146zEIlHxfe19CvxO1xK4yr1RStrzz+op5rU5fG3VH6nC0mNlwfyk0j+ozcMtvtIiStWbo3Q9CvcW4MlQ0LZQurIhCMBA16RdnK/a01/1J/n153P21SIXkgVf0QJRp/epJ2o4gbmAjOFxjvTzdXRRIUTY72PFyn+4EgEutW4yhVNbrf8mjWIWMbGNMMe1/BC7Ksy0TY0mRdVfvjRP10936Qer8sKZYgI319ErVegU5pu/s589l3rnMFsSHxR1Rz4POGoAPHRnwze95quqEhUsbvDXb54zp4zGzuS4gV3JxktmQrh28B7rlXRw0nWY9FyxpHFktQF0KsulOcxRjfzpuvPTh4nZ757/xwKcVseNPTyRz+KaBALwZqJDFXaDHJ9RIJ71mcMlAu6gofs42txfe2ZiLIBfXVtGraelAzJTro9tc/GDvFiosL3Pz539FHHp X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: K1zw+SZWqh5r+Ia793fHWpihqXpWT2SSq27fsnbNXaaa5uM3JW5wmHLH8Lu3ADB/irVVRnMPqlV4c5XPQ6xMxApX20lVU8X2psh9X3HTbL1cr+sDVUOM8CDqy33NYe6c3XKDdJAnscxb/hcb67KNcQyAMIZd/IC/V/1sxxDkL9BSp0sX06D/lkOO1E328RZKjAqjRxuF2KJ/ZVFUE41SFX31KZq/brYa35FJttUYD7RpBupPMLbqrFzNhjMZu9Q5d64kFWJptir0xNVB0EC5SP3pFs8BVrp1IXXz8iADH+VAcXY9B54yyt95nJTbZ65HeJgWI8Lmq4hG8T15Do8y4z+q/hCZ6jfdLl+Nzav83m2e1IrpacB7zJTr22JZlUItatUIWahd3VawhAd0HJQjrRLTetyIGn79VbeAu+dhpL6qHbi+5mIu0J34bfaUND+iCLu+kIKbv6RevlbwZ3wO3d68USpBtl8yMqHIk7w+8Fk84tXeRmur5knAVWmtECwZrlA/B0PESUA85CKdK9c9VamC5uyjpLihQS96ZZBXEFCr2ts409Wc6bor5cjVIZprubbcASOUAge5eatVF87Ntq6OmVC2BbnaJIJK9i+KGplCtqt9En48YcHbTjx9ZURUSgosaFmqd2D61FPNic+8X+8jmrizXCq8evqwKpfzRop2IABTlTA/vlMtFN0KYiS/lZ5bitBwUc5Jo9nrfrSrXKT2FsXx78vM5a4Izco8dU92FldCPLpky3AN6iGvpz76Kvijj3/7f/OXzN0rW0tlrlw0a8TLpilfR+3E7oCrR73hnWs8sQ4OVa/jGeJS6kJN5cIjo4C2xqYk+JukmxB3CsKweJ9O9lUb7QW2hm1nHgr5qTBQSFMjgPIa87VXbd21+Zkv/hujX7O8Jm2ADVhNTUQJn5NjsNR6q9OPF5UTfwTFRAbecfZtKQKPEHho+LtKmUcnexgyNHVrmlPsO4750/G8DAvw4zJ5btJd2ht7Yn6fgAWdiuipDfhv8thsHAm4/6lrR77pvjp77Qh/V6fIHw8xLivY2yNIY+eQMBpR4B8WNNu3+LaD3JA5iYagJlyu61FYtbniGXQLLbVdholIaqobaC4gq5pM+gqufniW/Wh37Jmm/aIx8pU2LGQWex5ZN8P01U//ezbZj72ZCPC5NJxolRZbvhvxVeh6u7aT21Xf8PcWrJGxmlWVDwbXOJjIbtib5dtwzZk337z1Dl327XI7gT0Umh+b/094hl0X5RNIVHpaws7a9s4ccH/eqxnffnxKgZDEEKl26Hqv4aFsrw== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 355d36b6-d86d-4b45-73bc-08dc58089745 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2024 20:15:10.2397 (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: PAXP250MB0494 Subject: [FFmpeg-devel] [PATCH v2 14/27] avcodec/wavpack: Optimize always-false comparison away 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: e9Vt67dYs6WV Also use the correct type limit SIZE_MAX; INT_MAX comes from a time when this used av_buffer_allocz() which used an int at the time. Signed-off-by: Andreas Rheinhardt --- libavcodec/wavpack.c | 5 ++++- libavcodec/wavpack.h | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/libavcodec/wavpack.c b/libavcodec/wavpack.c index 51ac943fe7..6ab9088213 100644 --- a/libavcodec/wavpack.c +++ b/libavcodec/wavpack.c @@ -1000,7 +1000,8 @@ static int wv_dsd_reset(WavpackContext *s, int channels) if (!channels) return 0; - if (channels > INT_MAX / sizeof(*s->dsdctx)) + if (WV_MAX_CHANNELS > SIZE_MAX / sizeof(*s->dsdctx) && + channels > SIZE_MAX / sizeof(*s->dsdctx)) return AVERROR(EINVAL); s->dsdctx = ff_refstruct_allocz(channels * sizeof(*s->dsdctx)); @@ -1433,6 +1434,7 @@ static int wavpack_decode_block(AVCodecContext *avctx, AVFrame *frame, int block av_log(avctx, AV_LOG_ERROR, "Invalid channel info size %d\n", size); } + av_assert1(chan <= WV_MAX_CHANNELS); break; case WP_ID_SAMPLE_RATE: if (size != 3) { @@ -1524,6 +1526,7 @@ static int wavpack_decode_block(AVCodecContext *avctx, AVFrame *frame, int block } else { av_channel_layout_default(&new_ch_layout, s->stereo + 1); } + av_assert1(new_ch_layout.nb_channels <= WV_MAX_CHANNELS); /* clear DSD state if stream properties change */ if ((wc->dsdctx && !got_dsd) || diff --git a/libavcodec/wavpack.h b/libavcodec/wavpack.h index 9f62f8406d..2efbb1fd06 100644 --- a/libavcodec/wavpack.h +++ b/libavcodec/wavpack.h @@ -57,6 +57,7 @@ #define WV_FLT_ZERO_SENT 0x08 #define WV_FLT_ZERO_SIGN 0x10 +#define WV_MAX_CHANNELS (1 << 12) #define WV_MAX_SAMPLES 150000 enum WP_ID_Flags {