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 1B9F0C83F17 for ; Tue, 15 Jul 2025 06:24:37 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 38DBA6B007B; Tue, 15 Jul 2025 02:24:37 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 365906B0088; Tue, 15 Jul 2025 02:24:37 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2A2756B0089; Tue, 15 Jul 2025 02:24:37 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 1BDC66B007B for ; Tue, 15 Jul 2025 02:24:37 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 9D88D10F4D4 for ; Tue, 15 Jul 2025 06:24:36 +0000 (UTC) X-FDA: 83665510152.09.1BF017C Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) by imf18.hostedemail.com (Postfix) with ESMTP id AC1281C0016 for ; Tue, 15 Jul 2025 06:24:34 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=hTMh+bBP; spf=pass (imf18.hostedemail.com: domain of ma.uecker@gmail.com designates 209.85.128.43 as permitted sender) smtp.mailfrom=ma.uecker@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1752560674; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=w4VYgGFTZ0oWXLLm71NTBXounZsQLYQkCK9H7WBrTiw=; b=ZOvrwIGh9l09xYvRCIylT/WJzLp3FQoGDbDWtBMh+cP7Zeve8dxv1602uNPptBBYWPg04L F6H44KVr+PT2KdNlJloWR69aOzbs6ybxsXnNosTmpJ5Lh4NQQ1V8uaslYXnQoert1JhYcX 5I31wYQ9QVGst48rRZJVS7zs9m5m55M= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1752560674; a=rsa-sha256; cv=none; b=Gtu7rGL3uJBKWMFpMVHYFQL2p2C4Geq4F9Da+LhxfwdNFI7uiYJBMyI8X1j7EnaAaDvEpb Ne9AdpHkAMgY+Nyu1vRCQ5UGc+/sfAIfRp+ab16asViZJAPR/te/9F2Sb+16XjECnqr/nH 2Y2nOFClVDX1euoYvLS47rKWrfKa0ek= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=hTMh+bBP; spf=pass (imf18.hostedemail.com: domain of ma.uecker@gmail.com designates 209.85.128.43 as permitted sender) smtp.mailfrom=ma.uecker@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-455e6fb8057so37465295e9.3 for ; Mon, 14 Jul 2025 23:24:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1752560673; x=1753165473; darn=kvack.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=w4VYgGFTZ0oWXLLm71NTBXounZsQLYQkCK9H7WBrTiw=; b=hTMh+bBP6/S+huNYB3kR/oieqWJK03S377YgKCZJJPK/IrXSql9e7aJzxSk0WZTuTw CaasYRXm+X2mhH4nXIL+ia0zeYOfGxn9pmZHNLqsi4sVIDBFe4doTrIIwfK0zsfDuCmW GBFqlNTMcVqzOg88dnUV96Xq6PVt2GuKEgyA6f2RWCw7P5ous0O7VDPpi60P4Nd6naVM S1jb2uC7iGi2c/t59b98a9QztCiZgT49r+fNbM7OEpojchmKelxbnhE6iXCSXQ2AyYFv kilwA2in7g342qRd/BjGb7RVE6+HT/mloAIyw8KTcGyvvieq/+Yvg4gzjJMosflZm0hW zO0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752560673; x=1753165473; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=w4VYgGFTZ0oWXLLm71NTBXounZsQLYQkCK9H7WBrTiw=; b=gm2rfhSHVvZCl5yuCk7c1PW7nlpcWupQo1xf0EH+rMocozhrYZZENTdbgImdWXyYmb bN4g7JyQp8KVYEQPhFen8phr9vHDGzHZnIMBud1cDNoA9cWWyfFSxromtTJhD9ckRxZX QR6F/b0P3xtDZ5JG9AlWjBgc1ekSQkIn5tlQgA+C2EsXHeOxGNJmdskqKe8FoLI085IJ jjroeoT4Qo5DtWvBjG//wQ4lGbf9CHub1+dIYVqgGwsg82+9lijD/HD2b2GL2i8eKcS+ YyNFGrxS/E0xSOTyNA7XsCpZaP/Ke+XflJIfvlr33rkVNKzzaWRWT+v2OyvuX1YMdGlP o3DQ== X-Forwarded-Encrypted: i=1; AJvYcCWlmAsgz3oTaxsGpmB/4d9FNJJe3lB+2Hbsvt2VWiv4bysIa2jU8Q3MWUuk3c40RIomHApXiPL8cQ==@kvack.org X-Gm-Message-State: AOJu0Yx4oX2ZS5otW86Cy9/0Ry2FFfvZgYcXr+hTKzRqhnXDXRuenGhN H9qadIR9RC3Ggdyt4fhtS6sKzJ9komlbGZzsTPvrmn94zNdJA2ccdGJu X-Gm-Gg: ASbGnct0dogEcKqfP5YeZDNgWLSkNKWmHjHJHAXhryJlkXc5Ou5ZlkekYJViiExGJv5 wqJBpB8b+kP5QheLb9uEfkmNdCvfmHS/mS9wIHJN68QwgJFIjm1Lz4x6CjfgtSCTUC8K09zWww9 jQ4qkij/zk5sbold/D2v/IRzHgsLIR9ggpGSUR0lNhSn/moe9BoNRO15vbhGIgMg9ly+7OksLed 9B/fwjTppPSAGfnwq7kuwrf9yeizawafOTgwyNj7G1xvO7iMHCeXGLlJvGTBejS7QcWCn80c4js DnfzdiPETOn8xeFjURbUHB0r630LFM9qB7hwFCtIBYJj/i92sVfB1hb3UCC/EibqXyFeqGyVE5N 3znEHSnO1qdqdYUkQS9ll5K+yu7go1gfBTFTh59UZXHHn4XfO5YYNowWDiE0g1awjMGD1gC4uab FaT2oAOIO7XHrsWw2e/77BHcJH0YLAA1hza2hX2uJ/eZRJM5UTMTQ6Sa2FFAimFdKAl8G4Z/kQG aRod+QJVNeFyr0SH4BD5XkTvMT5Lzo= X-Google-Smtp-Source: AGHT+IF2hnsQQRtjZ3XwiS2AtbVps6NptTRW54j6itYDX0j1M77jgAVfRUrduf0BsARXSotYoztRng== X-Received: by 2002:a05:600c:8b34:b0:456:f1e:205c with SMTP id 5b1f17b1804b1-4560f1e27femr88140865e9.4.1752560672656; Mon, 14 Jul 2025 23:24:32 -0700 (PDT) Received: from 2a02-8388-e6bb-e300-2ae5-f1e1-5796-cbba.cable.dynamic.v6.surfer.at (2a02-8388-e6bb-e300-2ae5-f1e1-5796-cbba.cable.dynamic.v6.surfer.at. [2a02:8388:e6bb:e300:2ae5:f1e1:5796:cbba]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-455f8fc5a01sm105198855e9.32.2025.07.14.23.24.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Jul 2025 23:24:32 -0700 (PDT) Message-ID: Subject: Re: [RFC v5 6/7] sprintf: Add [v]sprintf_array() From: Martin Uecker To: Kees Cook , Linus Torvalds Cc: David Laight , Alejandro Colomar , linux-mm@kvack.org, linux-hardening@vger.kernel.org, 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 , Al Viro , Sam James , Andrew Pinski Date: Tue, 15 Jul 2025 08:24:29 +0200 In-Reply-To: <202507142211.F1E0730A@keescook> References: <04c1e026a67f1609167e834471d0f2fe977d9cb0.1752182685.git.alx@kernel.org> <28c8689c7976b4755c0b5c2937326b0a3627ebf6.camel@gmail.com> <20250711184541.68d770b9@pumpkin> <202507142211.F1E0730A@keescook> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.46.4-2 MIME-Version: 1.0 X-Rspamd-Queue-Id: AC1281C0016 X-Stat-Signature: o87tssg65q8o68j9i7bdqghya3mribgt X-Rspam-User: X-Rspamd-Server: rspam07 X-HE-Tag: 1752560674-398312 X-HE-Meta: U2FsdGVkX193pMoVTHWJis1S28X6wKIjhli8gJKfEszfqrj8WzPO9LRWRVjsgNISCPd3mXWgTweH8BJoIBUfXu5iQ6t/aWzcOZ7059vqwNP5OdGiR++cm2263FwmCMau65X80xKnb18wIlZ1i3sVsoDKGvv7xf82L0I9Fvk775Oa5YMIZZsAAtSsR8OmqtzMaeaY0DbCppd1NPGLQyXOV90Q35irMmYgSwLLaAFLrxUWCzzgzaiMCLtl3ySiKkrqOrXA6GBUkii0kQby/vmvS7J5yalFTSgcLwc5ZWV4S/2Q93tYLktb56DntZVH0fQkjccSWX1fUqnT5IhdChdlErtCbbNShIdoSBWtTRO4AKQddp5xpNPnLjlmE0RLQHJqWMkAeFr5dRcHCJa+USRi/ktuaM2Vw2Mz+Ux6TQ9HEkHdEjMjyPECuue+DdaN4p8TfT6xdR8GoUQDvGQ6pKPlg/UlxZF9vI7ifA/HWTI+0X9JxWNpNK7/pvAa6d2eY04QJpyjuidKvW2jHfve9h0jDZWmhptPwRM7L5NRooukgWzOh5qiOph+mwtgBJ2oCYbuZ6nyRkzbXosQ4te/6ywBtKwuNVsygJR6aFuHdrGxJNmV4uWPIV8m+Dn+0xp+B75Bz+5r0DM7eDZf6iDE/hQryUOYPT4dMWLSBJTBGAKY6//b1sVQWbyUISjPiobbiy9lVRwkZll/O1dCxtdm8kbc+OEMdEs5j4NXVYuFWEWeO1N57AsGXhIpPsu9OjZcPUGXMDSjALw4MN9rvPNqYyZ1OEuu44JtrV1TJkJ/UPmSVn//LppdfRdPqs3xYyVRc8rWy/DhSFXbYZqZzHz3Asnn29z2wIVvw633AaaKoZC+qiP9aT+dA1N0sXtP4nYdWd6q6MwXW69p0m03GxrtxQDfRhu/hPWH+U4mqaJOyGHKl/nx+7Kh7M0gVC2RT7QA3AzCw1HmEuH4KjHr9AHKcEZ QL4mxsuo LOVmx9o80s8I2VPwZmjnqAPiPiwnhABAy9tASvca3SU+uj8SNknLLswdyX08prajx0On430rRV5pdHmhzXEksZqE1FATxfYGKR5ZsJh6UoA5+s4kb4OUWitGMarceZMhOTZEUEQ3VflEkjoZrFIpcpEnA/UHJ7L/7fqQ+XoHmdnsthoHDwvkhRFfV5kmaXQx8anDfGlf8yIhnux4pxe8McKbMDfvdnwNIEVXjc8mFp9Dhv5RJnAfCqQYdiZne0mXyp8j0TSXwjpnq99qdtutsNoL2FjbtsmnWfxwDPZ7Y9eiJSRao1RXfGpEkKVWEL4sw9dS2JcZcJsDaAwwgkp79RDERV3hQzIf/4l7/S6twRTU7L6o9MjEhu3sk9LiIdp8ttVrM/JD5fJrkB6odGrUmSEvILQ2JobpsNARlGovI8ZsKPlRAtqy/Kh48LXajiASq3uL4lFFjC6sJWVh24nkyhBSoy0Wx64s4wYDjNE2JUPwEysPWt7/6b1hAx7cVHRsDAlXgoqDOwgVSNTwZRlRG1AB6rl+9gLsr2i3tFlor4lSoChwnkGkobeCoVXtOeM/fsrJdh41xPJvZeDOaUscWiIVKdg== 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: Am Montag, dem 14.07.2025 um 22:19 -0700 schrieb Kees Cook: > On Fri, Jul 11, 2025 at 10:58:56AM -0700, Linus Torvalds wrote: > > struct seq_buf s; > > seq_buf_init(&s, buf, szie); >=20 > And because some folks didn't like this "declaration that requires a > function call", we even added: >=20 > DECLARE_SEQ_BUF(s, 32); >=20 > to do it in 1 line. :P >=20 > I would love to see more string handling replaced with seq_buf. Why not have? struct seq_buf s =3D SEQ_BUF(32); So the kernel has safe abstractions, there are just not used enough. Do you also have a string view abstraction? I found this really useful as basic building block for safe string handling, and equally important to a string builder type such as seq_buf. The string builder is for safely construcing new strings, the string view is for safely accessing parts of existing strings. Also what I found really convenient and useful in this context was to have an accessor macro that expose the=C2=A0 buffer as a=C2=A0 regular array cast to the correct size: *( (char(*)[(x)->N]) (x)->data ) (put into statement expressions to avoid double evaluation) instead of simply returning a char* You can then access the array directly with [] which then can be bounds checked with UBsan, one can measure its length with sizeof, and=C2=A0one can also let it decay and get a char* to pass it to legacy code (and to some degree this can be protected by BDOS). Martin