From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 5B706455B4 for ; Sun, 6 Aug 2023 10:12:41 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5094B68C697; Sun, 6 Aug 2023 13:12:40 +0300 (EEST) Received: from EUR03-VI1-obe.outbound.protection.outlook.com (mail-vi1eur03olkn2081.outbound.protection.outlook.com [40.92.57.81]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D9A1A68C68D for ; Sun, 6 Aug 2023 13:12:38 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ESV+OX9P7CLyZ9GMHhWRiNVzcFDi6LPl2cqzqZ94QelM/RWTMi7XHM5J4EINbkg6HLHbg4hoYiaGICoJ7fva+9qeNdPxD6Vg29nDUwkk50LzBnMYQgZHliYrqyYumeeX5YQ2NFNqX8zx3g5RRr4GyctBL1bubHTknHSx2FEoDAm/9p4f5LQkjx9k2GWibykD6ZOnrlVSUtG5LW3n1cKDEyy4WNN8iW8DyXQd2IgU1GPR2rs1EPPQ9GE3YD/aNR2x+Mup8LN7GdXds7aE9uUVcGiHzo/+rc/iXQEt2/LXPj8TLokok4r31v8HcS/5tuMdMDwG+ofblV5POVsOthREUg== 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=Zfl/8iEOAGM40/4Lkbk6tol1SjEsR9qAtpYSAsTl/Tw=; b=FifOEOY2/NlqSDfdtaFxA+fkJiYcGc4pKle5JoGHH/MWTQF77XDyLC0qpNWwvK1w73AnvPTDTGPAskQN8WLHhjFXlPA6iELClRkmOfndeP38nZj699HS1FsyIRtqshuAcmBhFziIlT+8xvh/vmykmUHk2GFZVyWVjAwYTXjuivjYKtPrI4hwGZ/A23DtenLbHX69GlWiXHUYc/oSwRfBvtLu+val/nO7bnRgFFVleDIsxag3yxtOdRqz/6QmJOIuO4YSHh/eXXaRO6fwRN0pKxoEmnFolnsHU+ZOAesO1tyMUuJhgGnnOR9QbW2rv5n265/vZiq9KnXTFZEnXl7qjQ== 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=Zfl/8iEOAGM40/4Lkbk6tol1SjEsR9qAtpYSAsTl/Tw=; b=Q01NMLFbNm+6yZQ5IcBiCeZiYcNf/Fgt9hZdmpsIyY8VZJjz2fbRsnGcTVM1hDzq8kvQvdk3+qc8lcjuc+cxBncLxJ26I094uYaUcoHgNhmOcMxN3hBqgsiLdfX9sPhZvFn07GmJMQ0Q/BFoGq62c8U9dvdptu1ILi0g7Xfjnf6D3Hs7CA3eyhdTCPRyWRfCr4YePSTCZSsgv9S3Oi1AC501dK5lzhw6gBxK4YjZ6uh28pTBk/ZD+zNz5wBUmn8Sxe/qjl8tDaB+jA/DCL6w5myRwHJPSw/N7VXhZHUtOXhpr5NAzdyJoV2Fmj5RbWF/UdFtsCVn9pHOmCD7gW2lCA== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by AM8P250MB0341.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:328::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.25; Sun, 6 Aug 2023 10:12:37 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::5e01:aea5:d3a8:cafa]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::5e01:aea5:d3a8:cafa%3]) with mapi id 15.20.6652.021; Sun, 6 Aug 2023 10:12:37 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 6 Aug 2023 12:13:19 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [M59GiwEr5ccpS8lHj+35MbLSP/apDk2HUJCtfNtlN2A=] X-ClientProxiedBy: ZR2P278CA0013.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:50::17) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20230806101323.2828419-2-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|AM8P250MB0341:EE_ X-MS-Office365-Filtering-Correlation-Id: 944b23c2-f88b-40e8-184a-08db9665a8b3 X-MS-Exchange-SLBlob-MailProps: EgT5Wr3QDKztMW0vhCn3pV7dFFD0NyTcErBYJVYf+zM3UGmX4cfL39qBYURv76u+ZlGWMsRnKJGMPie/JOojbl7VKweY6rDaoYt15XkI6oda0YCsFxEKg2E6/NSC04dld5eovjH+JmBCtrZsBhlIz78wqXrRndtuCeOrkDrZw+/7yH4PvhYYB3SaDIpKVZqW0gjGG+CwcaoIxxJvF723gu/geZacSl/7QIWy1DjtZkQcQKtl/gdSbKHM5qEPb9JFrBLHDZBvBv5cIykpzt/ZjOTmxBP19x4zPboWbGjITrqpoLibQV/pazINVIlS6EZmlcK/VQHOzu2M87u2jUA9lPFEeM+hrYryd1ABhuzg6dsA5b3SnFsW7/PkwDfPwvszFvfSr73QhZ2vj1iWmNXhG70smXE28Us3u0h0D3HqP5f8NIfh2zYKXUx7efAIrAYTtCUiBOuJ6EnZtJqYMNt2gpcum0sjsjmhcF9tGtZIx8cF7zaAinMMpRRyMaf6Op1xEczFGROXMN37k+5KTLRELBRVIojXRnlJKwh0O+txcN0Zm7IgvqnZ8a0dGvDHJgv6qJ3U94kxVhpPVRt/INn//25gCbofafZKl748/qj7ex+otac5M9MyNO0wHXpiPvtDFMfM2ofgTOK1PnpLPiPEHNojs+LD+K+VytHw5tz029iyTZvGQzYHP6GwmZxnz4DDPIbylJqBZt+T2HDKaDXJGgBYS02tnrYOWJOEwlrCMng= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: opbfRSqnpup3GhRJclharw38SjlG0KPnVmCCFTf0ZEQW15pec5ONDmgVBUj1helnmRx269ZCjDgcNd6afjMxSWjaygRfvCy2nA5ghgspELaG2yIR74l5hVOqfnTcqMNSXtlifTtOrUkblftnXztkd7o6m6WGzPbfkSssJTq4KP1iHfog6KfKbl3mKC2YoMl3E4bN58MNdU4Wfdbnf9TAmcReh1+KU+AxfXMLQBLAPE9tjmpDByNEeJgoqq8RzAsVB1DbpXf/IZC1BYM0o7eq1GZdsjVR9sZ2soBfHPx9nWXe+WvuqFkIBFAHCnbYZd7HjgMehqiyga01Fv8OHzasDEYY4kasqR9nGbUw/6itWh2LR0nHLRO7bb/HxbtFdCMcReP7AGyf31mJtWnq/mxC2ixPnQwvNVTFKHl8XCAzrRy/+sB4qBnzNE+IvtvOsRQkbuJplvlNFm0/1O8uV6O3IynpOBo57p3DZydIW/G4YOMhOGiqIlb6rtGTh/I/sMX7CYyyF5ifhAxNcF4bPGlIokgkkHq0OuJMW5oaHyE1ArZlJi4CbrRA8M5HgNIMlBiBpYDIsm/sD8xvZ4eeEFmshTF59kY0ZDvo/6eAuHYAolQIHKt3V6REDDkwC3VlTXTX X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Zx5Br4vwOly5x8iZGqVZ3RzDL7Lzbix0ds9OQhfDV7qbSsEKGuvxQAmRLLb6?= =?us-ascii?Q?gTJpY7Kp/ZAK9yrkcVNShMEpjsy8eAkpqYBAeGyq0Pg/h46qNl60cNvCpsKz?= =?us-ascii?Q?PGZ2dEOUoYkU0uYiG6OMBleCzSckqPDMR7sxqkMjSkUTybYkocuc3Kju28ab?= =?us-ascii?Q?KEI9L752NaBv+f2Qup8n9q15HJK1Djm2CUDWQ6ZEC8iHnpfY2ZqGs5/rSV4b?= =?us-ascii?Q?cfkp5mOhFCzO+sTJG6TkCYI3di6XDwr+paDDH6ZfkEIaSz5KAf/31x5V5drq?= =?us-ascii?Q?E9iJUIeEa0ChC7BVRs9m24rOeryQKY+HPNEIiVepHenNnAQ2iINETSwVg4eQ?= =?us-ascii?Q?FXg7ftkFqymvJUgCHp4asL9V4mpUVgkR9e1nCM+lWbh2mZ+aRZPBhUt6FH+3?= =?us-ascii?Q?HNkwqr4mvg3qlKJ9iyB/pambpc57VSt415BTxNql/Hu7JYgE/FdKaH6ve5Xc?= =?us-ascii?Q?3q/uTGnYa4HpKy9tnL8YnE/N5Qq5gdeny8Zwcoo12aB1gP6hTNLlOITOmO74?= =?us-ascii?Q?s3mHtRkMi3sIYp+0qpH4fp4jtvCBc4JI3Po23p6iQWiSXxFO4MSglsGG/sfZ?= =?us-ascii?Q?bKsiM2dVwLVULtGbaS9s5TbzgGXfeteTkFkpETC5tS8JpZLCF0grJfhxIhIa?= =?us-ascii?Q?6ne2XQJ8qpjD9pexEL5MoHtU+4+2vVkLE+FYE9vFoYvKw+yfV5RKtJjEy0f/?= =?us-ascii?Q?iZg9YctuPram4BNwUcSg/fd4Gxr4smsv35y2EuNLBxjpfafaGfFgMOxd5SLY?= =?us-ascii?Q?bcC0lxDbpRSSln6e6Q9EafQkcIRr8oZmbrtlovMwT6DrJ1jTBM3zCv9+3dLT?= =?us-ascii?Q?NsUbSuh5jFPo7gHZ0S2lDGFNJxoOAS4PGNwTXF5upXwJnZdTZG0Bk2AUwbfV?= =?us-ascii?Q?LZpWLbnllZGRC/DbxS6MqWy1XpIZGtOvbDDl46fgjScg0jjrULvZiueeu6sd?= =?us-ascii?Q?G3Jy+XB9HISQopbdmNublZWCmbsRaamBWN9I7n5pzkjZYq/XAuqWNJPakhZr?= =?us-ascii?Q?XfpBdZfjBNq3bCk3t828HgT64jHCtIrCciSb7uUxkit9DgKzNncztSVc2ZmK?= =?us-ascii?Q?58QBOwDzVJNV9YXBl334MKbsZSMf8enURfc9XLm+dOmrkxHg4QBXQZ7u6x0I?= =?us-ascii?Q?7UWl5fBjryfDcGQ+GQvpwzZmg9RZEPaTEt7k1jDbjqGW0Wu0FgYpV+GYNB+3?= =?us-ascii?Q?NIRhqsIL2pqPgP4Qwv0eqlleSyrG0cOuwgCz7NBdjEHDtg4haspzk0AbYdLO?= =?us-ascii?Q?NGqCHQmOz0jjyHLJvaSQ?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 944b23c2-f88b-40e8-184a-08db9665a8b3 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Aug 2023 10:12:37.1929 (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: AM8P250MB0341 Subject: [FFmpeg-devel] [PATCH 3/7] avutil/channel_layout: Account for \0 in sizes 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: av_channel_name(), av_channel_description() and av_channel_layout_describe() are supposed to return the size of the needed buffer to allow the user to check for truncation; the documentation ("If the returned value is bigger than buf_size, then the string was truncated.") confirms that size does not mean strlen. Yet the AVBPrint API, i.e. AVBPrint.len, does not account for the terminating '\0'. Therefore the returned length is off by one. Furthermore, also check for whether the returned value actually fits in an int (which is the return value of these functions). Signed-off-by: Andreas Rheinhardt --- Missing lavu micro version bump. libavutil/channel_layout.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/libavutil/channel_layout.c b/libavutil/channel_layout.c index e2f7512254..9b581ae6b3 100644 --- a/libavutil/channel_layout.c +++ b/libavutil/channel_layout.c @@ -108,7 +108,9 @@ int av_channel_name(char *buf, size_t buf_size, enum AVChannel channel_id) av_bprint_init_for_buffer(&bp, buf, buf_size); av_channel_name_bprint(&bp, channel_id); - return bp.len; + if (bp.len >= INT_MAX) + return AVERROR(ERANGE); + return bp.len + 1; } void av_channel_description_bprint(AVBPrint *bp, enum AVChannel channel_id) @@ -135,7 +137,9 @@ int av_channel_description(char *buf, size_t buf_size, enum AVChannel channel_id av_bprint_init_for_buffer(&bp, buf, buf_size); av_channel_description_bprint(&bp, channel_id); - return bp.len; + if (bp.len >= INT_MAX) + return AVERROR(ERANGE); + return bp.len + 1; } enum AVChannel av_channel_from_string(const char *str) @@ -789,7 +793,9 @@ int av_channel_layout_describe(const AVChannelLayout *channel_layout, if (ret < 0) return ret; - return bp.len; + if (bp.len >= INT_MAX) + return AVERROR(ERANGE); + return bp.len + 1; } enum AVChannel -- 2.34.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".