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 9B262C83F20 for ; Thu, 10 Jul 2025 22:08:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1AB2B6B009B; Thu, 10 Jul 2025 18:08:53 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 182C86B009D; Thu, 10 Jul 2025 18:08:53 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 098E66B009E; Thu, 10 Jul 2025 18:08:53 -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 EAEF66B009B for ; Thu, 10 Jul 2025 18:08:52 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 9DBED1A049E for ; Thu, 10 Jul 2025 22:08:52 +0000 (UTC) X-FDA: 83649745704.21.3852AAB Received: from mail-ed1-f54.google.com (mail-ed1-f54.google.com [209.85.208.54]) by imf12.hostedemail.com (Postfix) with ESMTP id 82B9C4000F for ; Thu, 10 Jul 2025 22:08:50 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b="dr/nBi0j"; dmarc=none; spf=pass (imf12.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.208.54 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1752185330; 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=ykdGKGKuBHYeQ543548mngZ+AURoPxGnuzWJOvHPANU=; b=UPJ916HDr2TrIPsCfIGeOqgzB2auNSiRrz/9fpF4l/bucqTHpqmFUaeeEzjVMMsVKvfvGI se+L9ThVGT1kh9l5vt5mpRdPwDNMvYrF8ibGupA0V1Ix+jq2YskFggZtU2fcIHbhlDLZE8 cGwkAxRn8U9oYZIOorHXgKanTFhgo7k= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1752185330; a=rsa-sha256; cv=none; b=Q5GVcrkqBOJL2/IDDbVLqaZ9IGOGP72QoZwEuV0PjDAqHW6owp4qOvym1VonRMuaajZ+Zz oEd1/3JPwliq2xuAl51B8ABVRXAqer9IrKu6Ucwc5ubHi/zt0wj2f2UCM4S/ckQ8daiG2F WmtQtke14nnqqBEloHnT+XsUqojFQac= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b="dr/nBi0j"; dmarc=none; spf=pass (imf12.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.208.54 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org Received: by mail-ed1-f54.google.com with SMTP id 4fb4d7f45d1cf-60c60f7eeaaso2242953a12.0 for ; Thu, 10 Jul 2025 15:08:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=google; t=1752185328; x=1752790128; darn=kvack.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=ykdGKGKuBHYeQ543548mngZ+AURoPxGnuzWJOvHPANU=; b=dr/nBi0jliDYTxZdt/GhqSpCoUrahPCm/F8+hVY0P97+Ok6hsqU45GXH26E2K6MbSt a09dO7pFVFZdeyP6ylAHVe4fXkwM5QKnegXWGkWM7Ek6+9+jdviTAt6qhwMhZ7CU0oMD ddnSWW37rCIP+4F+FmczLe8Dii+x/5/iJE6aA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752185328; x=1752790128; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=ykdGKGKuBHYeQ543548mngZ+AURoPxGnuzWJOvHPANU=; b=etKC4BBH2duXtcj6YSQqJ2wen/yzkbTD9uySJa2GxdnLDAmvppEeBsYUjZu4Afx0R8 0ohrxfqtHZUYwOXzEcWWnxYJls1R+gARQV3o6KrLMoiLeR39ouep6+/GTr03zqlx6SvU N1yHdXqaXk01Bwb280vrk5uTEgeVkg5/UQ3X4Vm0x2HZefU2epKUPFvyXClZFrknLTgO PI15TkEhMYQeok3buRW1G+kJeP142Ww3cXeegdOUNJVInvDSpgN2oHsznqWE4j9UD6vN buk7rFOOQrFdKFjsezZa0I9nlwNbXtwyo5q39I5N3+Q8QHDT6cS9EcTRyrxmtOFG5052 K6yA== X-Gm-Message-State: AOJu0Yy38EzmoJE+2g3Vzc75PUYREk/TJYqaWwDXaf4MuLs/bRAN1Ml5 PfbyyFT4qY7LnodatP0dw43cOZxzKzxOk5fFBqyCC2yUPtdX8qbffVm4nuYbz/M1y5ffhPLK4xR VrJ3+wz9wwg== X-Gm-Gg: ASbGncv+ohGcoA7RMjNjP0Vb1TUjhpeBuvEXhPWfmx2RBAC3mp4bCnuOBz9AIF+zXQW 0v60FU/+Wje/757Yq6Z8kRyrQvyeAeODovpiet5kvdhpp9wsUqXvQyydvtqvTbQJNAUh/9cRbIH wU/Ya11W99BNOE4hlMhGk8YfqbYh6acnKMw7m2EkAmijyfcip3bIIWPuDpBvfbHGu61C2C+sKCz KIee04YXxIXhfI7wNmELXd0nWcVQfZBwKqNNlhGRD7Nq61sLH+PsXHGhnrtkJIORj+SvPtRUtEv 8lbLwIkiXdQLL2MFxVAvZVCyJJsmxU8lsnzzCS0QGNUupSqNpUHLYl5NLv3YdzMkjZCRuJPtcan tJOL8YUiuEYfW1QU5PM8olT/wzu169T+z0St5vnp+4pW1MQGXSBMeRm/exhVWVfmnIJI2KB3w X-Google-Smtp-Source: AGHT+IG6E5bW2Ym89toQ4JdcIcXSCLedeRrqtlBuxUOclZEPe4c/DaqpZfMt8qtvNKQLUAh7K5vUxg== X-Received: by 2002:a17:907:970f:b0:ae0:da2d:44b9 with SMTP id a640c23a62f3a-ae6fbc2654fmr85166366b.7.1752185328340; Thu, 10 Jul 2025 15:08:48 -0700 (PDT) Received: from mail-ed1-f41.google.com (mail-ed1-f41.google.com. [209.85.208.41]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ae6e7e910fesm196185866b.1.2025.07.10.15.08.46 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 10 Jul 2025 15:08:46 -0700 (PDT) Received: by mail-ed1-f41.google.com with SMTP id 4fb4d7f45d1cf-60780d74c85so1973338a12.2 for ; Thu, 10 Jul 2025 15:08:46 -0700 (PDT) X-Received: by 2002:a50:cd57:0:b0:607:77ed:19da with SMTP id 4fb4d7f45d1cf-611e7611808mr397182a12.1.1752185326316; Thu, 10 Jul 2025 15:08:46 -0700 (PDT) MIME-Version: 1.0 References: <0314948eb22524d8938fab645052840eb0c20cfa.1752113247.git.alx@kernel.org> In-Reply-To: From: Linus Torvalds Date: Thu, 10 Jul 2025 15:08:29 -0700 X-Gmail-Original-Message-ID: X-Gm-Features: Ac12FXzpHETNg-HuLSmnK9b1Tp10RJ2FzmkvjWu0i-rRbR44n9d-UbbJBC2bj-w Message-ID: Subject: Re: [RFC v4 6/7] sprintf: Add [V]SPRINTF_END() To: Alejandro Colomar Cc: 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 Content-Type: text/plain; charset="UTF-8" X-Rspam-User: X-Rspamd-Queue-Id: 82B9C4000F X-Rspamd-Server: rspam03 X-Stat-Signature: mya68o1yjc7xoeqazoywqaj9wr8q6q9e X-HE-Tag: 1752185330-218656 X-HE-Meta: U2FsdGVkX1+o6yKOWgPi/XqrjrhD3/DtEAvCxIywNYdXGQsgmKMAuEp9qEXjbxMbtsFZKokXpXd2vvcuv+gFwuGrzKFfeNR1Wjdlhm4rJILvfyhwBZll6kYxtJQzvPFHRq+PNraD/Zz0Rb7v83qrO02Mf3xEaldIlmEo9lIX8qV932YeWWqRglAOmp1abueyKQQlA2ZHMmDyGX5A/anYIJjbESDJt7R+NW05WUh6ylpP/xPlMIpfYWbRIc0ASjKERkR1CmvS92CCjfzQtvZNh67vlwW+A1ZzRdK4xeIF0VTc7krgFrfruLzxhj7wm9eDt/tcAT/VZcvaKPgMMAhQO9HO8qh5m+B1XVBCSYp+KV1adPCUjAD0nYYxV8K91rOEX15TUdQ6qRFaS71trScQkzPeK87+okQ8+Ls0r4uE8p55fvNtzeESVqXlXrRmfHp6+si4RNmIcKM2oonLQB2hUSW6Vv4dT6Q/vo3ZesPO47VaDF8IfuBOOo8z2YKF+8ZVGvcYih8Yxzb6hS3Ly6l0Nwm/LS2mkA/IgXJWUdK0w+7Zo5b4gXGmyPxVewVczuZYDhikD0HZuDDlZtexc6Uk/J6zU201iSAD+gM77Ok0Oi+xkO+YhD9+k2rroReDRln/yhix+rG6d/yZMHYAeT0ieg84dJ0bdRMozuVxjysAaEbI5LM03txmyLNWetfCCKeLQS+fuEeH0F5DeddC1Rt6giATbpPe/U6owThg9pIlUWoWrk5A5EYKEWzYZnHs2bS60jN8JhCwFm87u0iUZkG5wbQE+rrwt+d0qIHOVO09TIU/McyIzqCw1wNEqvxV85Anwxch9BxVR7sjSLHNzTKq/8FI24WUHO/QV/YxdMU4EsAd3Ek4QLNnkPeHbdocC1DOndU6wXJ4kSecj34awpFDJb+L0c3ky86A2FhPY4gevdhJHMAgOQMdHekxkVnwF/Lo7WALrUG0PYyeQ2aZh4f Ij1Gh0PZ rWl6RFbVk56qwqBT4x/B9A5HaX/r202X3ijemUtP9TUfBGpdvk7AER9cGkUsBy5f3nTARwUwyFidHx3JRJ2OmTkV5PSAP5qsj8haqE2Rka3VurzsY2R18iY6kr9iK+glB/hLU/nR65RKjqn3C+AkZxjMxSRtxYW/9e7ghdRDHD4YwIKJnP6OwXblOVUeEyUefPDJtW3RjKFHk86d1E0pK2eKd+ZVH9kXCB9B54mY4bqHWTWx9UCm3f4JMPQ+Jg1SaLC/arAGmLxYqyVtfqcbI+8Xj950m4RMt7MTJ9SrmaGmaqPUxLlu2joMVWEmwixdz5+oPqUAEUoy9rBlCzG76qb94y+qfb00je86MOntYiBoVd5tnFNArQqCgvcVek+MY+mpX7hTyxGl18x/4NdVuRYs9rAotZje83N5x1qNMAvVWfMiztIVyNroMzMWOw44kjzu/jn9g+U6QWbo405H6xwYfiRe4/BbtxZPCseIxoD89tYFLavWIt1/07MbOBZLaOXQ8NDizPZrgc1YFDtg5ztNPYfg5j7LOCXsGLo/WvoQHKh6vJwkT0hnJNvvlQ0FM8A5lwNgDTzScfU934EbG1sGVlZzmcU3ibLjW/qLIl98EBxRZ9o1KGxEDQnfIEq32N5c3ZGijuCIdMLQ= 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 Thu, 10 Jul 2025 at 14:21, Alejandro Colomar wrote: > > So, I prefer my implementation because it returns NULL on truncation. As I pointed out, your implementation is WRONG. If you want to return an error on truncation, do it right. Not by returning NULL, but by actually returning an error. For example, in the kernel, we finally fixed 'strcpy()'. After about a million different versions of 'copy a string' where every single version was complete garbage, we ended up with 'strscpy()'. Yeah, the name isn't lovely, but the *use* of it is: - it returns the length of the result for people who want it - which is by far the most common thing people want - it returns an actual honest-to-goodness error code if something overflowed, instead of the absoilutely horrible "source length" of the string that strlcpy() does and which is fundamentally broken (because it requires that you walk *past* the end of the source, Christ-on-a-stick what a broken interface) - it can take an array as an argument (without the need for another name - see my earlier argument about not making up new names by just having generics) Now, it has nasty naming (exactly the kind of 'add random character' naming that I was arguing against), and that comes from so many different broken versions until we hit on something that works. strncpy is horrible garbage. strlcpy is even worse. strscpy actually works and so far hasn't caused issues (there's a 'pad' version for the very rare situation where you want 'strncpy-like' padding, but it still guarantees NUL-termination, and still has a good return value). Let's agree to *not* make horrible garbage when making up new versions of sprintf. Linus