From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id EE237C83F17 for ; Thu, 10 Jul 2025 21:31:27 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8B8E08D0005; Thu, 10 Jul 2025 17:31:27 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 869418D0001; Thu, 10 Jul 2025 17:31:27 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 77FB88D0005; Thu, 10 Jul 2025 17:31:27 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 6875F8D0001 for ; Thu, 10 Jul 2025 17:31:27 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 1DFB4801C3 for ; Thu, 10 Jul 2025 21:31:27 +0000 (UTC) X-FDA: 83649651414.19.C3960EC Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf25.hostedemail.com (Postfix) with ESMTP id 6A66BA000C for ; Thu, 10 Jul 2025 21:31:25 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b="Czr/vs+w"; spf=pass (imf25.hostedemail.com: domain of alx@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=alx@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1752183085; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=/ToJt/WvylXgUGvZjgaM3dJY9CyYuzUOshtzeK38clc=; b=w0nqVaZ9rQ+WMJMzhbBiUpNeUQ593yhp7BCbn23DtB3ZWKkA+uAdPg6vPujDt1vUncySWE Y76PYeBv7RQxlJLo59Ims8PzFwvxDTEPRigWzZcuX/vdv5JZ7yLL1aRN8LDDVLvjjuBem3 IZF5nbihuMW+gEC66vYCHczCpEtTHTc= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b="Czr/vs+w"; spf=pass (imf25.hostedemail.com: domain of alx@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=alx@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1752183085; a=rsa-sha256; cv=none; b=CGcIqu9+WSX7sphGwCYh71Rd9ot/f/xudY3Ik54UuVZauQBRBJ6QlRTjInyd6KldEqvVFJ I/b/xzNlSOHfMxT5tSUNeg97PFn7MRbJGELYonFaZ+Mj5aj4ON9C4mB/VYzzb7ss9BlO2k Hk3w+9Tw9BBODYrNjn03OzFTYhwSpTg= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id DAB1FA547D5; Thu, 10 Jul 2025 21:31:24 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id EC03CC4CEED; Thu, 10 Jul 2025 21:31:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1752183084; bh=BviaG8x5UaMaZ2NZNq4PRkpH6oax0KpIs4xoQwuZthQ=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=Czr/vs+wEbaVSdBx4yIctL/u3HxGAZE/y+vim/e+sn09CaMvg5y47zTkS/tEx/dWZ /5bMgPrsHpl/rJ4D040AqEYgVFJ/Bck6WuCkR+6rdeF+Ssazk9PLeLcR6qXSqPO9Zs nFQ5wcNxIVXgWmoNEcM0VWZ4IiA1ovl0PNxCk01jARFm8wHV+S3BrdNPxNDL9VW2bg WgQrf4d4jefyBADF/g5LDs2FSXi3xNaqHV/nfsV/F8zycPkRzF4JN3Y0P6flSPtLK3 aP1sBhHGoZLdhoBGvtgHJqyWNScaCGvORxWyQPho5YFfIKMmChAZODlEoGSIM77k9w Sy0yUgGXZv1tw== Date: Thu, 10 Jul 2025 23:31:18 +0200 From: Alejandro Colomar To: linux-mm@kvack.org, linux-hardening@vger.kernel.org Cc: Alejandro Colomar , Kees Cook , Christopher Bazley , shadow <~hallyn/shadow@lists.sr.ht>, linux-kernel@vger.kernel.org, Andrew Morton , kasan-dev@googlegroups.com, Dmitry Vyukov , Alexander Potapenko , Marco Elver , Christoph Lameter , David Rientjes , Vlastimil Babka , Roman Gushchin , Harry Yoo , Andrew Clayton , Rasmus Villemoes , Michal Hocko , Linus Torvalds , Al Viro , Martin Uecker , Sam James , Andrew Pinski Subject: [RFC v5 6/7] sprintf: Add [v]sprintf_array() Message-ID: <04c1e026a67f1609167e834471d0f2fe977d9cb0.1752182685.git.alx@kernel.org> X-Mailer: git-send-email 2.50.0 References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: X-Rspamd-Queue-Id: 6A66BA000C X-Stat-Signature: icg5ngmfrbdk3iwbp4iisqptn9cx8c1a X-Rspam-User: X-Rspamd-Server: rspam07 X-HE-Tag: 1752183085-104584 X-HE-Meta: U2FsdGVkX18AQPdKTeLqh3qu+LiW74X6DxzrGRdp+WQS54qiW0JdSKH5wSCMG3In+2i8D8/5TnjEGeg8RaRsUqvH1owulw4qdq51nPAj9zAzeKrNv34nffDySb+Xo+DWZ+9a/PQ5PF3wpS9TRgPQpQPeaFRbp8EMc8xH4DYoijOr+kaFJ9oW4nz1XzVchAM1zOQhZBPcW3Pzp9J5sCS20suGGqFFbqDvBtPiDEEEao0ZMldaBnpJOwYFW1weur4VJu7KoOf0ubhwDsO+I7Y9NKlwxXZ89VCPUTIz7cr6PkTPsuuqhV096Kk3tLSsio/XDloY3o7QYQJSNCs9V066XcBteT9tL8La+HDF6pxqnGaInW7z6SHxizZ1U9UJtMwhBWyUk+czQHUSB9zL4EyNZkV2O9Q+rkyDo5qhE8bGVieIOJ4hYIZxuux82rcWcygfHtqBRWnKunj6jMpX0vb37/vKNSX1jAayDQ2VcuFk+uaKi9o+rlEg2tFap2i+deuYM5j1twKF+YXvHDjfqFA2X9Z8ltTbb17Ip17YNIynNF1xsOgsz0o20kz1S3jnaYtMqwPg4G4cQxr8wG9bcUa3kCbscpkGFcW3EQ6T5V1gwgf8lcBJFQXXi8HOQsNtNgVEPGt8Y5+zPxbQs3CH29Utb39dBA45FPq9qxl1WeTdhfApkZ5opoIq7mUxHNc3MUIyxIV34q0OsLxYgA9FD4LEoZPSAWwaFdYl0gkwcm3hVY52MGni/Pg7S/ySqkaVWtaWW/8XRWy4HRnBhLTvS1j3teFwh/w7iDj1fKWnohi8bb5Uvnp5aGhwVYyQmhG+jgzzBRyvGRYvSnbl/y2i6U/xZTwPBMGeaNutovi/+IDj9UDCskKOolxqBwyy70bizAbzpa/QWKMHYM0mBjcuxSnVHQgDLnG6+bENyPwhCAb7JzbVwLMkcBdVw7OuXOjUOfWxnKu/+wSN2Tdw7YU6/Sm gskkuE2W n2Va/z+J6ryMemP07OCzINUzX8RG2L1Y0wEaGg5Rh90L+JGduSok3pJejQzMGabpM5f1ZVU8limEhccXFxm7eN1bL0RdASzjb/MPF2x9nNe9mLpZ2js8QPD30ea37+2CeSPE/r0IxXWVGfsVZ0B9WIYUAU1DAOqlSEreGI3oBELWwB/dSIcVEnsgEUAnjYdZAQJbvriL+Yl1/Fhp3CSOb6I7xAsv/aflXuSJnwqdOUKKOKVNgs3JlZ1Lo2Fr5lYN9EkGGspCA6wAMAR6Imc4C085Y7faPtc6gnx8ZivKoCEm1L0Qq62prmsAMUqLVo04YDj7ClSa+BSzkebvyd7SZImT8se01LiBhUhKZ/iUviGp7ID7U3HbmZaJvQXXWv47SWDNrX1CKSG3JWAISILkaBZps4lWFU6gQRy/usYSIO8OTm+s6XMuL6bLwdpkEYQQgluxJ6vDnMEnjkno18p3ouXmB6ufxcmWtNBMm9lA/4d8bo2llHP14jYDHX7u3aWmHrqaED02mBJ3OjVgDVrZ0XFO9P1rYHt+r3MpsQQ067jXj/HCMHFU0yrTDshvT1Mxu0OQnIqu8344qDRnSP6jW1s3zRQ== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: These macros take the end of the array argument implicitly to avoid programmer mistakes. This guarantees that the input is an array, unlike snprintf(buf, sizeof(buf), ...); which is dangerous if the programmer passes a pointer instead of an array. These macros are essentially the same as the 2-argument version of strscpy(), but with a formatted string, and returning a pointer to the terminating '\0' (or NULL, on error). Cc: Rasmus Villemoes Cc: Marco Elver Cc: Michal Hocko Cc: Linus Torvalds Cc: Al Viro Signed-off-by: Alejandro Colomar --- include/linux/sprintf.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/linux/sprintf.h b/include/linux/sprintf.h index a0dc35574521..8576a543e62c 100644 --- a/include/linux/sprintf.h +++ b/include/linux/sprintf.h @@ -4,6 +4,10 @@ #include #include +#include + +#define sprintf_array(a, fmt, ...) sprintf_end(a, ENDOF(a), fmt, ##__VA_ARGS__) +#define vsprintf_array(a, fmt, ap) vsprintf_end(a, ENDOF(a), fmt, ap) int num_to_str(char *buf, int size, unsigned long long num, unsigned int width); -- 2.50.0