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 56E2BC83F17 for ; Fri, 11 Jul 2025 01:57:01 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id ECBF68D0002; Thu, 10 Jul 2025 21:57:00 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E7B748D0001; Thu, 10 Jul 2025 21:57:00 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D91868D0002; Thu, 10 Jul 2025 21:57:00 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id C6BE28D0001 for ; Thu, 10 Jul 2025 21:57:00 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 3EB4881249 for ; Fri, 11 Jul 2025 01:57:00 +0000 (UTC) X-FDA: 83650320600.05.698353B Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31]) by imf21.hostedemail.com (Postfix) with ESMTP id 867C01C0003 for ; Fri, 11 Jul 2025 01:56:58 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=ts7eRZFX; spf=pass (imf21.hostedemail.com: domain of alx@kernel.org designates 172.234.252.31 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=1752199018; 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=iLiApmDD9GioY+mJVcux47f72la0yRJlQGBvb8gjtIw=; b=bTD0udZE9Q/N69luSb38K6FdZmnenf48JHfF8AP8R1Y+DussnzEGr4vLastAwCKWv/1Ihu 966lHfNbpsiKeYZZenaggysgk+0OAFjEuAAO2Ge2H3ouq29oEfQdyJI14nlllOjjjVdjIl TAHmgZkHVWvE5Mludqcy8B9YIFjVlAQ= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=ts7eRZFX; spf=pass (imf21.hostedemail.com: domain of alx@kernel.org designates 172.234.252.31 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=1752199018; a=rsa-sha256; cv=none; b=If+ssQFac8jXdQIBDVm9G+GNYoFSstrw2JhM3MbXJ3pnC7qOkJQeErRNHUPhnAhocdHaTU 7n8ztxh9KPJIrjKRBoPsaS8kdRTQgteWpR4Kg0uD/yqzqOncWM5LPunjphQyRuaWyF3wFy zIwEc+RNYjJrVBCPwczjoXf1F9OW/8E= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sea.source.kernel.org (Postfix) with ESMTP id 8D8CA43F62; Fri, 11 Jul 2025 01:56:57 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id DC406C4CEE3; Fri, 11 Jul 2025 01:56:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1752199017; bh=ZJDxyoHVxpXrXiiFeB/cS1+32e1KaIZe9xa0hULilH0=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=ts7eRZFXC+hTZVEFRgDt2D9q5siZFqf1bAIA+BV4yYoGKyCqhum9H5nH/wnnDWLuD AxlWW10ozY+fZ27zw6+BLSbjLzvoaCnD2qpZ2PS2TVPhJe84p6N4ZbzQcf9q69v0pH MHcofgmtzyrHi+wlXAYO0i/jjiGwAQWS4hTjnH9Q+qz6qMyv80CUFhD/YMW/naL4xm Lzl6Ob4LiiYFr7qFiuDb8A7U1f4s+9k+ph3bBe4ulLHpnd3rEDF8tDu0h0sRbjbyrH IY11kxEVhLQLSk1SSGfq01IKieR4Co0wn1vDOig6r4P2VEFzFpJQaHRak/PBPOHy3a WglLx3iQ0L3Dw== Date: Fri, 11 Jul 2025 03:56:51 +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 v6 3/8] sprintf: Add [v]sprintf_array() Message-ID: <9348d5df2d9f3a64be70a161f7af39ba30a0edc2.1752193588.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-Rspam-User: X-Rspamd-Queue-Id: 867C01C0003 X-Rspamd-Server: rspam09 X-Stat-Signature: xcssrctkofz4bcgzaqj8ecwx7yij5qbz X-HE-Tag: 1752199018-399698 X-HE-Meta: U2FsdGVkX18TM22ML4/LqqQWZ4ge1bDxmsvdDQQeZ6jXLFlHVFC4YfnqE3gvrN6CaaKFuuqGTL/Gn5bQr43+0w39dPu+EAZjPEXe/kEFvpDDlQ49jXil0AfeeS/yqC5XCYsYqI28b92yM6fyylukpl6EAaBv5PDJQMbqHyrovcrSKDb2oPYn97ltljRDTZG/TcBQok4Yr1WOI8alBnQfMaqNeJx4ykuIwaSxyRAATUDSEALLj3TNuMNJESFUhdW8+74zqywbBPo6uBIRJjl32CgV/GWYOZD3fYQ/+O3bI6CG0mYyZRPwNrsWDFJZ7BUWh0Eo7Ka3ApWnwiTZakgTibpH3VW/1FhZqsQA0yXhh1Ks4C1FlM00tljDFL/MABYqy1PWCqv8zDHnUIl57DU/H2g+O5WB/cJdiDe8qOag/qWjbXJLVmqS+yINXfUGcv18eGchyuhBoj1+wCn16Byx/JYKJJW/U9SYeOyDUEQG/z90s0QCvYIMG4bKF5SEz3WkZnEwhxYXmMu7YzeRQoTipVU84bqz9Syfrecd6J4GlDxhbLaHsZqdZ3V6MhHdHUmpzs8r45QyRCRHWJ8G3sWy8CHAR07Yy3LAp+ZY39oaEfkbRUdtrIyrhYeeSc8TbMEdrOjmH9UuiU6ZMkiNa3yHr8y8rqo8Z4lofFpjjUm6LfL8RrR6HXCKJDzG/Q/BHLdmIOVLE94dh2juPKYT3lZMBtl9fj6w1okrpyeMGuL/3nj+eQaoc6AMGy9G+Y5VAW2Mnghoq8OkfrvlMoLDPswf4aVLlDJFCk4UJwa+iaqLGBCBw8MB9SYq1XpzRfMukzSzok5N2YAdBPKay5cC6BngnU/7D/qsgIbJKONHe8TObmAIQd4Xtp5PwnsVBEyZz2K30+AjfwplpkbkYym5mqr3jUHTiitmRH+vnyu7+TeMxlDv/J6EmTPSC7hI+S1bTilDaO4B/YRld4Q3ZT4L2On uThdDAyc B/VsMSCjOQAAvJuqajUkeB/RH1INFnUCIC3Hqhxa+MCA53KJp8o79j0bhhYzpCIE5Feh2UzNKsn1XH313rpHlXF89DnBi5ONccFmsOQuTVx6yi1OkJGL1dJsMr5mmq2e6ayoAP+E48lbf1bV7Z11OfxsgMB8Mx+46P7PlmhPXwMt+dqascjB2JWf8XuAnCRiQ6JbaWxxHXJEBvAioyetTGgsY4KVIhyF675n5U3UUulQ6VKEW+rxpREtMcsRoZJFgDKKcODKvpDm4Q0sJHkjNDP6nMaFH1BW05BJSLRmwNkvp2QK+urILROPs4ZSlEVsjD3ucE8Z8St+MsFOHAVThHvfxZpCMWRlnZtdMRjFAKTULYItva/JZS9HYxF3xokkVRWD39+OirDmF1PefoQYQSsWADZNhB0Yw5ToosT72SsLluOQSx0kMUG5i5y2rPjUOT2R80f/5dR8WCajvUVSi5hyGNtepp5UNp3w8CLs+ulhX6IrT+mOuDF15cngxLwWAdVpx+V/eO3HDeaJ/3mWJMqpkgs1z/25YVqdWoVt4YEncxd3tkcYg0/5VSEB5Heb/SuZCxPc8kxgC6mt0i+iKINe2EA== 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. 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 8dfc37713747..bd8174224a4a 100644 --- a/include/linux/sprintf.h +++ b/include/linux/sprintf.h @@ -4,6 +4,10 @@ #include #include +#include + +#define sprintf_array(a, fmt, ...) sprintf_trunc(a, ARRAY_SIZE(a), fmt, ##__VA_ARGS__) +#define vsprintf_array(a, fmt, ap) vsprintf_trunc(a, ARRAY_SIZE(a), fmt, ap) int num_to_str(char *buf, int size, unsigned long long num, unsigned int width); -- 2.50.0