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 66C56C83F1A for ; Fri, 11 Jul 2025 17:45:48 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0137B6B009F; Fri, 11 Jul 2025 13:45:48 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id F05CC6B00A3; Fri, 11 Jul 2025 13:45:47 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DF4A66B00A4; Fri, 11 Jul 2025 13:45:47 -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 CC5FD6B009F for ; Fri, 11 Jul 2025 13:45:47 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 948F2C1330 for ; Fri, 11 Jul 2025 17:45:47 +0000 (UTC) X-FDA: 83652711534.26.0F9D623 Received: from mail-wr1-f53.google.com (mail-wr1-f53.google.com [209.85.221.53]) by imf23.hostedemail.com (Postfix) with ESMTP id 9BA0714001A for ; Fri, 11 Jul 2025 17:45:45 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=WQmLmF25; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf23.hostedemail.com: domain of david.laight.linux@gmail.com designates 209.85.221.53 as permitted sender) smtp.mailfrom=david.laight.linux@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1752255945; a=rsa-sha256; cv=none; b=x8POEoVKScw9zaR8nzdTCEphXHZ0curb4Ol04rbVIx1v83Lyk3ZEWAIADcLJ5Qoq8MBBwh owwtf49LTNQczOmFSQjs8W18D8+fPqLLVqTXWlG6MvXtgJDGoxZnyg3txypuydybw6LAWG ADBzw9iIEkVIc//uKq7Dz4ZMtCe0Yu0= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=WQmLmF25; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf23.hostedemail.com: domain of david.laight.linux@gmail.com designates 209.85.221.53 as permitted sender) smtp.mailfrom=david.laight.linux@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1752255945; 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=aHz90J7wv6UCluJ+wqVTBlJ1tKvrIgBjMeUDsq9gFZU=; b=iS6Xjtvhrl65T1p79PywXTZhQ6a6+xBh0gRvOwpXEFy/zKpLsAbqRw7ebUhp0+/ErcsnUy aYb9jvBhNaK0NknbUlI516Wtrii9EEM8YPO3UOc5QxzyEc+9R57ndX8YH8OVser90KmDBE dKTfNvEz6bKKlRxW/LKNRspsgNPpFJU= Received: by mail-wr1-f53.google.com with SMTP id ffacd0b85a97d-3a6cd1a6fecso2356220f8f.3 for ; Fri, 11 Jul 2025 10:45:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1752255944; x=1752860744; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:from:to:cc:subject:date :message-id:reply-to; bh=aHz90J7wv6UCluJ+wqVTBlJ1tKvrIgBjMeUDsq9gFZU=; b=WQmLmF25q7Okg4uue1v2nVRwjlu/GPKv7/UnDCr/9g2XmJy66YG9P8a5Sq6cAjlGEL SfIfQ9TTQjW+gyq1hXX3EedpeUFFsBnlbMMANtrPm9zuE7FxDwzt7uRx0UIY7cF0ZdGl MjjpuImdzaKiP6aOP7J11N3hzxeC1oizmi0hDCu57L65uDH8Y6KJmvPzu8/Zpsx3SG4h pGKLV8p9ArMYxQwvs3NsNeWbPSLSSe5jSCr2ZI0KabDhK1yKIjKf+JKGbkKEY0JNGFBK 1pZ4VnUb10hp2U3nayeBBgeoXhNnbx7heSnnmGoRLg4XB1I+FdUi/cWM0DHWF6XcBfBT jsJA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752255944; x=1752860744; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=aHz90J7wv6UCluJ+wqVTBlJ1tKvrIgBjMeUDsq9gFZU=; b=WGiy0E4E9KDl1LSiCc4Dr6Q3iyDukS2KEdsH7FVE7EyYI4TtnRJc7EbRhw6wfGeRSr +zzUt+v211O++3F2HufKyrDSwZ31IksoYduRhdL6ROZ44j3iL/+4p48c3c7vbvPz5dt5 rbu7WW7d8dJMbHA9sYnz3ORpsjecqeSIWcB+jMhkpJyfhf4MZBq7opNPKoZLrd//ceRE OuDDajqwyU8QYIZ6kr+IrPIUWp1tRP87vA6RZTZMmHJtqwkxxqh3K7mt3j93fyQEes4H nhDCPH00sn5yrhiWvKsf4OKCFkCY1F7Qf26LfNoDJrY4XKBRKxBkdMuYPL5IEBeYVujR JXPg== X-Forwarded-Encrypted: i=1; AJvYcCUtGfdn3AEngbGUD36vCjntsyTF7tpm1joqTAA8fOuQ1AcuG3ZdG+N83MdLr09CTfJYZZ0aslj6Xw==@kvack.org X-Gm-Message-State: AOJu0YxSoZ8FCE5VQ/7pQ8A2/1h4pVtZ8BYqEdX7n8d2Wkgfq6UP5juc TQmFgxHg6jLXLhAtyrPZFUUCZrFsPV9noyw9rGia1vzRasyW574inwNc X-Gm-Gg: ASbGncuJUk/n8tKSwVDSVCPyEfY2CchPZLx1SN21I53cdLhGQ0a9aj6qvxT0l+Qy9uV vTY37KYGvrz30wYmMusDYj5b7eAe0uQGpyajeSoqXlWdVav9lxlxjEsumUhoGmW2zwvPiiPBy4p 6qVRL6LfJIqCindruc0y6b91m8kYB6wA02JjskV79RpVn4YaI/K13ECOkTGb0KSZaZztbF6H/J8 /9lTl9Q7hBR3fXR8XPn1GHWJiSwPFX+4QzNs7cejxwfCNe6XcFGJ6YxLhFvGfN5ZZ9jmOjPnM20 7kLzGpL1aOoDSBymVFItqd9ibkQECJ+GlOIcSPUIbglAnJjTKXhmHVv6/gWVDcIdaFtQJsn2VZ3 vRiYRAS4Su4nIH/LCgkwgJw9K9WUyrBll2qTF7ka2LBGQPQcbeelkpzwI78Mne2Rn X-Google-Smtp-Source: AGHT+IHYLFoeIiLxzKNpx2oPH/zTSNxUirXDFPit/qWyQBVz60uAIgugFu6p75MsyP67wPcmrHXWjg== X-Received: by 2002:a05:6000:645:b0:3a4:ffec:ee8e with SMTP id ffacd0b85a97d-3b5f188eb07mr3981761f8f.36.1752255944008; Fri, 11 Jul 2025 10:45:44 -0700 (PDT) Received: from pumpkin (host-92-21-58-28.as13285.net. [92.21.58.28]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3b5e8bd18ffsm4957337f8f.9.2025.07.11.10.45.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 11 Jul 2025 10:45:43 -0700 (PDT) Date: Fri, 11 Jul 2025 18:45:41 +0100 From: David Laight To: Martin Uecker Cc: Linus Torvalds , Alejandro Colomar , linux-mm@kvack.org, linux-hardening@vger.kernel.org, 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 , Al Viro , Sam James , Andrew Pinski Subject: Re: [RFC v5 6/7] sprintf: Add [v]sprintf_array() Message-ID: <20250711184541.68d770b9@pumpkin> In-Reply-To: <28c8689c7976b4755c0b5c2937326b0a3627ebf6.camel@gmail.com> References: <04c1e026a67f1609167e834471d0f2fe977d9cb0.1752182685.git.alx@kernel.org> <28c8689c7976b4755c0b5c2937326b0a3627ebf6.camel@gmail.com> X-Mailer: Claws Mail 4.1.1 (GTK 3.24.38; arm-unknown-linux-gnueabihf) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 9BA0714001A X-Stat-Signature: 1gc6spfmjaxbiiwrps6be64x1qeodohm X-HE-Tag: 1752255945-450712 X-HE-Meta: U2FsdGVkX18XZEt2JXAkjLtWpjzbWQrt6Xi9HqEGjWSKYH8IomTSLPZNOizYxApMA9QBQLYnkgaIf79M7Lu6sEltW38d+fMWUcb4y6DLYMz+G2lLnSlIL5a83D/EEWqlxtaaWDkkoqIj8dEw9Ji9xMbrnF0//N3hpvOurRx7rDvQv6rtFXzmJVBo101X0RVKX8NCkHxkJMIbQNY97IPUZSRXEvslypUp8rscWNZt3K2DQaD+ZXt8kn5xQ2wG5MbFeC+RnquT8/3PRjEYJFPFJBP/qfPPiPJ1ldHSRBJtGeXG/v8WFeq2vk4zLJPVHo6YyzdOQGrxb1Yc3l7Bj4QtN8kHlEi1pGaR2rflrSaNzwLkrGj+q5iZiluFuEQ4pOowkIfViTl531i0j8HRibD9RygsOeu8gZ3LCdvJga3niXampmCXOzRGxp0wQGAg2m48QGiAk90x+Se275+tbc4kYOn9DhZvv0eSa831cimPPO0aLZtbkMejMM8ZVDiHZl3px0rseRv51yXlLehTJC4aLlrnPShvYOCsgra+e5oxGuyEgKIyt8m00ZZVJwwQ/jmtI4oWkvdDI0L6JaY0wHCt32BsWU1e2k3ppujWYHszDbPKETSxLO9zG2mAAsbf1ygGLMJsPCvFswKAfJgAVJLqHdsJ69kMpzICnrVt2daWP6MPUuNyjpOJvxhw3ZI6m1FyZWUmn1wiQUrQ2kLd96QaWXNGL/p7sK9MCNMeMQsCdPLkSo1qbNoV8YjgUE5ZZdTdX7aElD8o4Rk8iaqKNcEDmew0c3VgoREQ+CMX/y1uZqHtTrukbVMw432+YJTX4n1+rDTJsJJnldk/ih/tgjcvcfmo3mKCUYlZCmJ8wnIt81vCXFYeOiSBN9WB6CJkCDQYZqwiiQtzKdr7x3SWgI42llPi8Z223l/gLJIxI1vyjR9cRRDNpaQTQgy/OaQZREnmSnsyzGADXCQo1R+t6dM y/4uOyUN zynOaIdxXqHuZK0B5F9AMVHyhv/AjYp00SwLEnl+3xBHgNqAa14shHRKnWPdl9NmTBwY77Q8Xc+QnFEVzJjpbx1pXw5ZwuxJYm3BtOa56so+So7XAbNu7hxThNVXeaTqpE1vvva20P8DhHLFhF06DxFEicVzgd/Tct4VG2ks5qM8XzzXX3riaORipfmg6BizzNX0ci/CrDPuydxqwEkXwSQUP9SPAqvHv1Y5dxvSzlI7tHXu9ALifLl1u575qXaFcGMYEB2HVgZokZmJAvL7hMHTcnHCGZ3AOAT0DW6Q8+Yjt+Sr+GXP164maW3ZPPmwl28wwjRkZ/vrG09Iz8/mtvxk2JbZqYM40A3hpYffRRBh6TAuJcNxtTVKTLAnkGc7XEi9Rmkofz+/1W/lCAAty/yzlsnOr9aDZbHL/RhZnXCvHNjfFLA6a5dagpxmbSNCe2h5uaxRvoXD++dOSxAcD5QuABO0zbz5bGQrQvkavn/bb/kx9oprUCba3mavbsINJ5lboRWCe4ry1XZlcCdhKybor2FU6YoHCCBtMTKhbnvhxHHpM+iTaeHwrpEGH+QKMWKO3u64qwbK2X3phtR20q40AfEOo/b6aUKmvmFwapXNqNv2kya1PVz0BEgeQsD3eCBzu5PIvYIKpvcM0+9TAto/57w== 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: On Fri, 11 Jul 2025 08:05:38 +0200 Martin Uecker wrote: > Am Donnerstag, dem 10.07.2025 um 14:58 -0700 schrieb Linus Torvalds: > > On Thu, 10 Jul 2025 at 14:31, Alejandro Colomar wrote: > > > > > > 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). > > > > No. > > > > Stop this garbage. > > > > You took my suggestion, and then you messed it up. > > > > Your version of sprintf_array() is broken. It evaluates 'a' twice. > > Because unlike ARRAY_SIZE(), your broken ENDOF() macro evaluates the > > argument. > > > > And you did it for no reason I can see. You said that you wanted to > > return the end of the resulting string, but the fact is, not a single > > user seems to care, and honestly, I think it would be wrong to care. > > The size of the result is likely the more useful thing, or you could > > even make these 'void' or something. > > > > But instead you made the macro be dangerous to use. > > > > This kind of churn is WRONG. It _looks_ like a cleanup that doesn't > > change anything, but then it has subtle bugs that will come and bite > > us later because you did things wrong. > > > > I'm NAK'ing all of this. This is BAD. Cleanup patches had better be > > fundamentally correct, not introduce broken "helpers" that will make > > for really subtle bugs. > > > > Maybe nobody ever ends up having that first argument with a side > > effect. MAYBE. It's still very very wrong. > > > > Linus > > What I am puzzled about is that - if you revise your string APIs -, > you do not directly go for a safe abstraction that combines length > and pointer and instead keep using these fragile 80s-style string > functions and open-coded pointer and size computations that everybody > gets wrong all the time. > > String handling could also look like this: What does that actually look like behind all the #defines and generics? It it continually doing malloc/free it is pretty much inappropriate for a lot of system/kernel code. David > > > https://godbolt.org/z/dqGz9b4sM > > and be completely bounds safe. > > (Note that those function abort() on allocation failure, but this > is an unfinished demo and also not for kernel use. Also I need to > rewrite this using string views.) > > > Martin > > > >