From patchwork Thu Jan 25 00:54:17 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Dai, Jianhui J" X-Patchwork-Id: 45806 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:120f:b0:199:de12:6fa6 with SMTP id v15csp1631117pzf; Wed, 24 Jan 2024 16:54:38 -0800 (PST) X-Google-Smtp-Source: AGHT+IEiWJKfd0OwyfP5gIEz2sUFF0Cd1hcGYiREBFHZVzo0yUo8ELUkaVlj1i+AIiB98RaYnqeY X-Received: by 2002:a05:600c:3d92:b0:40e:46e1:e3e9 with SMTP id bi18-20020a05600c3d9200b0040e46e1e3e9mr31258wmb.122.1706144077825; Wed, 24 Jan 2024 16:54:37 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id r3-20020a056402234300b00557890c8d5asi13802894eda.252.2024.01.24.16.54.37; Wed, 24 Jan 2024 16:54:37 -0800 (PST) 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=@intel.com header.s=Intel header.b="AA/g2vvJ"; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 64C3368D114; Thu, 25 Jan 2024 02:54:34 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.9]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 468A468CB44 for ; Thu, 25 Jan 2024 02:54:27 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1706144073; x=1737680073; h=from:to:subject:date:message-id: content-transfer-encoding:mime-version; bh=37HI6thF++zymzFGrBQfUg0FvBkKFXsipYfexs/+wrA=; b=AA/g2vvJjF5f1GxOYCgtTIN+JKJJkU78rbLtMZvAorEy7NIY0P4aWZZJ XBJYi+XHDF0uySbs9eQVnxOocWsPlOLlnDYYJpSE+nAaQG2iYjvo2Y+iW HmiA2y2S/Rnl2CVSpIWrIbtKIJz2CQVC+y5GVDq5bHN+vfx31SVwUW6zQ 2l3StLTavNbsh4RbylE97VthMU3Uk/XRqTpfvlfhU21rYpw+P1MT/aGng z5DJE71zpc169XVvVWjWjvs46HV9KAOMwRP3FvdEfqYx3/jk0E0evk+gP L2Hg5v+sbSPK1gjecll8QVGsBHUKUVrV+EmMY+UBcf40nziaQ4IYaRpAt Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10962"; a="20573610" X-IronPort-AV: E=Sophos;i="6.05,216,1701158400"; d="scan'208";a="20573610" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orvoesa101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Jan 2024 16:54:25 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10962"; a="876880463" X-IronPort-AV: E=Sophos;i="6.05,216,1701158400"; d="scan'208";a="876880463" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by FMSMGA003.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 24 Jan 2024 16:54:21 -0800 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Wed, 24 Jan 2024 16:54:20 -0800 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Wed, 24 Jan 2024 16:54:20 -0800 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.169) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Wed, 24 Jan 2024 16:54:20 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=R/LPAl4Bm4SilIR+HXJgVZtaXaHyw3Q2jfst6Uox6rzJsCRVHNKO5AVQ49NoJRT+JPSjpk0SNJOZYS/edsaj/U74Dk2J6agjxvC2hNQRX4Z7bIfWdPLN5wF9uEJMZvHMl8Lgbwc0RG/sslqmFLR0KYCHPTN0Ife0CoVTue24e4edjEPEyo9i+vy3H5WkE7GB0a+B+zd70cDZhhnUSQZy2DKX1MpA3xXADf6HrKi3CzxL3W/6UFpuvKscT73w4sicYRZzu0PWR46Fx8f7jfagF2tym3K4xuM6JjcAebh2A6JioVsAbID95i9edtIxIJ2hmJnKtpJ+uusS/PN09pupEA== 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=l3ErRpMYXThQHDlaVECniGh+VOHCBJGoto2aOnoRhXM=; b=Mr3u+7U4lNkrCPO6Mab+QTBaUtJTbUrkXBrRqkGYhCfZBviSug0WCucwiiKl9Y54699osP7m8c8AB6DgWSPWhCtoajQiQbK2huikumYM3sO7A6DPEYFeWAlfLyzdlxCDQ5e8uXEKqosSgakG54v+WLiqFg9w6+pN07DcdOVcpVeV3zB7clJU9p4Znv6dbtmXK/ALkovqJA9f/H6mUwOEIZUHn8auxA9gHXUw7aAD9TOCJBHWClFydJ+1dnt4XNSCg5QHOTg0pLXpmudZYCdADHrjn7TBvtkt9CfObsOrkXTcWliT8BjLkuW5NXfT/ORF2JlJBzBIUsMLBydXVTyJKg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from DS7PR11MB7949.namprd11.prod.outlook.com (2603:10b6:8:eb::11) by CH3PR11MB8751.namprd11.prod.outlook.com (2603:10b6:610:1c1::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7202.37; Thu, 25 Jan 2024 00:54:17 +0000 Received: from DS7PR11MB7949.namprd11.prod.outlook.com ([fe80::a594:6f8a:5156:39cf]) by DS7PR11MB7949.namprd11.prod.outlook.com ([fe80::a594:6f8a:5156:39cf%2]) with mapi id 15.20.7228.023; Thu, 25 Jan 2024 00:54:17 +0000 From: "Dai, Jianhui J" To: "ffmpeg-devel@ffmpeg.org" Thread-Topic: [PATCH v1] avcodec/cbs_vp8: Use little endian in fixed() Thread-Index: AdpPJmtl+hVJnj6GT7KGrE3McpyjKw== Date: Thu, 25 Jan 2024 00:54:17 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-exchange-messagesentrepresentingtype: 1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DS7PR11MB7949:EE_|CH3PR11MB8751:EE_ x-ms-office365-filtering-correlation-id: 896f5f2e-3bc2-42b6-30b1-08dc1d402871 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: mJG0TzaWzYuReHAVPHXrjoa+aNLh4cGzBvIz8Enpqjjqvtv2L38g0BGri3u4IIsAMhoDEXXEojBBfgg3VMkM2HUGUSqkZlpYhgh6/aDjsJRfs5zN/1f0sjspto5Pkt47PvUOoHkleoD5ROizacPEYAQOBskCS/k5UkMIENljVwrQa803XD1MmtcozX8yXQ2SuP/6rRlgC8u7xPaNlF5xztF/ByXwop6pGDTeHYLhV/y0Iah0YOCDh6eJScB7l9CF4xB2FVNge6HoJwjS9vnf/8AkUL/BO/MDbA40L+7YDX6Q8iWUmuLrbhgghmSl21oP5u+nhTxUmU4IMiJVsUFqwnlbNDEDMlpfL2RxE1JVO4fuO6zJVlzJdZk/NNkirxbCR5VOx62OptaTnO7gv6saTxBStHV0Pw3pHWzIuP/iV0LLstskRlr40ab9CAOU0BxjAdslYyjVnZAeDlPHToUSVbPXIzmUlz3JuL6IrQHn8K1+oHe4eyVdpDV7G7d6tSb25UMj1zJA9KGUkB/euz0NhbpisSKx9neWNUJFqlauny6HW/0GWfT7ZirrSqEW/DZZJkRQZiS87uNpAXwz9wsKFhtrpd9FKkgNYsA73YPyA1aAwh8NVTP9Nd/ABFB+IAYg x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DS7PR11MB7949.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(366004)(376002)(39860400002)(136003)(346002)(396003)(230922051799003)(64100799003)(1800799012)(186009)(451199024)(52536014)(83380400001)(55016003)(9686003)(7696005)(6506007)(478600001)(122000001)(26005)(6916009)(66446008)(66476007)(316002)(86362001)(76116006)(66556008)(66946007)(82960400001)(71200400001)(64756008)(38100700002)(8676002)(8936002)(33656002)(41300700001)(2906002)(5660300002)(38070700009); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: tAwCV4oh5tHFsqFlsb6ACOTaulevq4QuIQ5b2QHfR7JQI3KoXi6eWQiIc7VGbq4vqCrlBHLUAIErhIhCR/HBes0d5nNoXu2sZppF4JXRpWKiWRILT2KtU+DlDaibulD4o85O3JEifrmWgIG93Kba/XRbkgawJLs8NzDN+Dq3Tt81POUrgQvSFc6AbQC3RAGPNh1pJqw2N0BW/JXZWOtAMCO7j6iHLFqeiZP+XsY95C70kkBHy4H2pI1+brob3SU4v9WkpD6npRIiKsg5TYRU8x7UBHxzWIg+X1Ebp9SOQP2+WUhAHgte3fx6KOzu+QvezpSR0YQChkRhLBhxirhscANx5CuBeWkGLmeSvhQsyjU8hHZDpSy32TY/KLE0utrAtqMUkvLzK4bbDIGeh0e0AWchqpsWcfrRXqS36Fw3jjHu1//yzKEtrIQC48sYk5oNOPb/k4qYOko0zFVROfHAq0tqRXdlJ9qrQI+ue5ytfwspf/Qr3Yohw70hp+yu3cxsPN98xC3l8GFSFnT6udZtXNIToa0nNQRUaN9TTLO89AMfCHRCn2skcWlQddusoj9Pp+tXAfw0mEU6b0FYptxagA3W3IdP2Z96jeMrhd67kLhinmwYwRKd8rvnI3D+kPS0ZywS+DmBU1enL68m5+F2JICDxhO25CYyYPtCk6x7uldFwY+C1XIk5ebtNlBnDUcqJ7hDlbzyUSfOLyV7aPgxVKG1pVQ7UY1q2W52H6XofFv+IbZP8L+04OXJ8I//f6p4U3YVi2uDh98ujeELQ/0MXuAThJ2WvK6VuS9PNhhxm9S7GEzTquyPo9LE6EtAP/mBpRjrHszFS3euWVgnnEWWMTwJmhJo6nwHgcK8w07mDbdPy2nsvdM2tQcHhDAr1xvnbYoc8q3X2EtixGdqwdFJfOPx57MsCt/7tfaDxZxjkLxWHtAOapnYBBEFWynWerb6CzNBR+UoG2R0cj+Znn7QbDSbus7HJ65CRU81+n3IwoTot8m8iv4g8IoyuWFZ3jz6I5Mw8WEm6+1haj8gLofR0puuANoek3ku4TJyI7RyMkY1fwLm65Ke4Doii26/YPNhN6DDV43coWE7XfIebvsgV0AUNRZybsrl+5ZC5oO9TyqxgmylFxA1cwjfTlp2EY3LOxfsFq1ye4hTl+Tx4kxFRkSHPFHFZ3QTOkZGIDC6UQpIIhzghlrDZObDAAF2N6LkhGC9iyFTEJ9rAXT/gReGPI3bbqrRoVn+QEb9bPI6vyKL+UXQjROsEHTQnOj+Ou/N+qqzlZowppJ+GrYPwEc52nDqNikxcQJNHRCyQcAHqzY2r9wuacVDdrxrtN1vEkQkh7gSJkzXCilZMO0dGA5J2+hrouZcJOYVzVpdjRh8BLQ8fbL8oNRw9x1gfyuCkw3RT7l5hGdcuBQT7/6vAJn7ezoVEVc4Zb64ecr6qfVreVrJi8uDYQbvJUFLkV3AtZuzFso/ko2RCdijvu8llICIkIrqdzNyaD5WDDm/5w/GHMw1OahXMPYFr1IgV9Mtj6JKxi3rmzmhD9IT93KZ15cSqvOOJPBjch9OdrCFvbPezoPSAJmt17xGrxGcDgKRkQjd MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DS7PR11MB7949.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 896f5f2e-3bc2-42b6-30b1-08dc1d402871 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Jan 2024 00:54:17.3118 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: PUScRpKpW3EF2yTv8RCUimds7AZP9g/M7WRvERnYniTyEW9PO16Ky/QJBDo1Kyrlvbs3FZXY8OjumL8L+1+hTQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR11MB8751 X-OriginatorOrg: intel.com Subject: [FFmpeg-devel] [PATCH v1] avcodec/cbs_vp8: Use little endian in fixed() 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: /Z9t7XUwssZU This commit adds value range checks to cbs_vp8_read_unsigned_le, migrates fixed() to use it, and enforces little-endian consistency for all read methods. Signed-off-by: Jianhui Dai --- libavcodec/cbs_vp8.c | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/libavcodec/cbs_vp8.c b/libavcodec/cbs_vp8.c index 065156c248..7a0752019b 100644 --- a/libavcodec/cbs_vp8.c +++ b/libavcodec/cbs_vp8.c @@ -181,9 +181,11 @@ static int cbs_vp8_bool_decoder_read_signed( return 0; } -static int cbs_vp8_read_unsigned_le(CodedBitstreamContext *ctx, GetBitContext *gbc, - int width, const char *name, - const int *subscripts, uint32_t *write_to) +static int cbs_vp8_read_unsigned_le(CodedBitstreamContext *ctx, + GetBitContext *gbc, int width, + const char *name, const int *subscripts, + uint32_t *write_to, uint32_t range_min, + uint32_t range_max) { int32_t value; @@ -200,6 +202,14 @@ static int cbs_vp8_read_unsigned_le(CodedBitstreamContext *ctx, GetBitContext *g CBS_TRACE_READ_END(); + if (value < range_min || value > range_max) { + av_log(ctx->log_ctx, AV_LOG_ERROR, + "%s out of range: " + "%" PRIu32 ", but must be in [%" PRIu32 ",%" PRIu32 "].\n", + name, value, range_min, range_max); + return AVERROR_INVALIDDATA; + } + *write_to = value; return 0; } @@ -246,15 +256,16 @@ static int cbs_vp8_read_unsigned_le(CodedBitstreamContext *ctx, GetBitContext *g do { \ uint32_t value; \ CHECK(cbs_vp8_read_unsigned_le(ctx, rw, width, #name, \ - SUBSCRIPTS(subs, __VA_ARGS__), &value)); \ + SUBSCRIPTS(subs, __VA_ARGS__), &value, \ + 0, MAX_UINT_BITS(width))); \ current->name = value; \ } while (0) #define fixed(width, name, value) \ do { \ uint32_t fixed_value; \ - CHECK(ff_cbs_read_unsigned(ctx, rw, width, #name, 0, &fixed_value, \ - value, value)); \ + CHECK(cbs_vp8_read_unsigned_le(ctx, rw, width, #name, 0, &fixed_value, \ + value, value)); \ } while (0) #define bc_unsigned_subs(width, prob, enable_trace, name, subs, ...) \