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 372E5C83030 for ; Sat, 5 Jul 2025 20:33:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BB73B6B8074; Sat, 5 Jul 2025 16:33:53 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B90986B8067; Sat, 5 Jul 2025 16:33:53 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AA51A6B8074; Sat, 5 Jul 2025 16:33:53 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 977486B8067 for ; Sat, 5 Jul 2025 16:33:53 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id C9901140AD3 for ; Sat, 5 Jul 2025 20:33:52 +0000 (UTC) X-FDA: 83631362304.17.60F6DBE Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31]) by imf15.hostedemail.com (Postfix) with ESMTP id 2A3B9A0003 for ; Sat, 5 Jul 2025 20:33:50 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=IpEYLkd8; spf=pass (imf15.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=1751747631; 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: references:dkim-signature; bh=DY1vOEDZYMCxgghd0vxj7SmrVDWY3d/f5umSVK2e/u4=; b=1ODfDAoQAiq4K/GjtY+5S7rsHQJCBXzUutfAjdcN54IsJSv92myTTP0p6M0BBJ+aUyBba/ UgdkeNitnv3dMp78iaLd2RpZV+FocXiUhxVPsTJPdNa8uVgxLp5nfD3x3wzE0qeoKdo/iJ GENIMeqqxTbSU3NfU7BCoHdbWSYWdQQ= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=IpEYLkd8; spf=pass (imf15.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=1751747631; a=rsa-sha256; cv=none; b=N4/Xsvp2/HXobKEgDEqU9dcKvSPVdlKZRD295F4Fz++QLyf7PP/g+SDGb+pXuM6dxn1on/ n/lJpcDOfCCHNkWhebCE9Z6r3xxZZh1YUgwmJo1O/57A9d9587GE2Iop4P3U7jO/kJiuxD U8okmDXx58JX6EJyb5w3NpBgLz1HOcY= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sea.source.kernel.org (Postfix) with ESMTP id B47DF44F3F; Sat, 5 Jul 2025 20:33:49 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id A74D0C4CEE7; Sat, 5 Jul 2025 20:33:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1751747629; bh=x8F3+UGkH0IUobmiunbvuYQ7a54OJbCXpvRPOub+do0=; h=Date:From:To:Cc:Subject:From; b=IpEYLkd8kEl6uXR2s8odDBOdGh9Iy0F3L3ghw+a+MNOsL5u6hNSssi5RySaKpL8zD j7XsdtYrQb2inxwQc/oj/iACXPxMAT6JuDBZPxed+KrvCRINHo56OHiqFrs1zro1h0 /KaRDJn8yFKwQrdY66bRBrQo/8i8vWuA4DdZ4Zl29n0a2Mp9mdlb94Y5KMIL5iBUFs cEY5G/M0zNbDrNap/M/2KyWMG4gwX0JIcp0Ls79CBdDMZXuVvT9hE7KH1m/i1Wz/V3 l1VoUdNNXdq+eM0bPZiJxeLhC8pL7yU++KjoS0FrqIF4Qh+z8MFESeW2XTomxpU14U N/WJW3lnVYQbg== Date: Sat, 5 Jul 2025 22:33:47 +0200 From: Alejandro Colomar To: linux-mm@kvack.org, linux-hardening@vger.kernel.org, Kees Cook Cc: Alejandro Colomar , 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 Subject: [RFC v1 0/3] Add and use seprintf() instead of less ergonomic APIs Message-ID: X-Mailer: git-send-email 2.50.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline X-Rspamd-Queue-Id: 2A3B9A0003 X-Stat-Signature: xk4nodjb449z4sj34j1ygsc189rh9339 X-Rspam-User: X-Rspamd-Server: rspam05 X-HE-Tag: 1751747630-806981 X-HE-Meta: U2FsdGVkX1/YcfRiq8x5qvyg4Q9zDAViP0xXqRiiN7jVvu+2M1bBoV++BC811BuOIv82HbsfJZg1ou1MJPXiJ5NHqLyEHJxx6DBNjiHUSSdUdvsC7Pikvc50rgGmr1/mEy44WnsgOyr9CIe+eYsduUIdkidi4LyCkIgCyuCDObecat/xbgSuG7eW2eD01xzK7eBgJbaMFToXAhAy44ay9AiBxvGDw7sCULUVaMteopCap470Yr4tyGKVdRWbacpOB7GqhEOpFytYI/JCxFqdHIDLlb7O+4gaPKvMVP9AUHRU/5EnhnjPsnrteg0LGLHgd7InSAoIza4yQtMtFr4u48sBN+NxbyGuaDc3iW+WHgDsTeTL1gOCvanAjR7wKbd99XH+h8/9xrUgfn6KrinuXa4xmw5D0wQ9ZSV/aEq4bVYStu/ZtwfHCvTVgLphskFp5mMlMB22zMhALEBD1a5KImhMbJzxCZY8RFIhh/BLLta0xnOnleQ0HvdIemsfXmn/xBSamJ9q8QDXvWaIqMPo7tWCFCJHNxvP7X/fhybr4SyPPvy3n0JJfgpOLb99CdRN5ydSKdv2RIaRBxWydX6HI1q7ReOZb1Yh0R7+J99uTIHpzmtN4VhGQgIDA+eg0fYRiRXAf+i279KvPgULe0NoiwiKoRAraUanKuJgg06o+N2qEi8VoadSRz4sN2d4Qj2v8BbdlFL9VMd9iK1GYWxAcIwWiK/6phLq2QIg+R5BCscP9ZiuhfkmPIdB4z8AV9fR+8gx48nCxIqYNxk9dgxo+pKzDA/1+HvwJNZeuzkVwh+MEy5ZEZ+hZnVK2Mw47rQxEizucYMRwKqYsRuG9O/+yg6uEp9/48B0a1U8QntgoksjUxkf9pj/OyU9yvxL1NkKhkkNp1kKSUjKNkZQARXdhnxCbXS/+j/NVyF0LDtbD6paCqLPgvUy4ZmLNrf8k8tpNPJ6MQvOHQHhw/5R9xj fmBaCOfa bimMdHUwOuqRMeSb8ibm+9NIp2i/uft8gvj3usOGntfhvZ/9tkEl6PENbv3A2tz+HG1zXo1bhcctiH9j45pdv/vUhlkpGlDAQaKD9r6lnysl4lXUULyOzLZSfEDzumHxzg7l1OQ+vLj6Z3lKoN6fpI2Pz6Ko+gZEnMIZJ62xLEa0RWG8jFHa/gdiCRfGk4qXcVHgV0dt1nGMc7kVIIhnIYwig7vEmjE62ghkunFzEeG8AXhofjZcxjXdlHGNo8flaihStnhocQe/NDhye4ffZkVDYqYRic35Fu6BD 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: Hi Kees, As I anticipated in private, here's an API that we're using in the shadow project. I've added it in the kernel, and started replacing some existing calls to s*printf() calls, and it was a bug mine. I haven't even built the code yet. I present it for discussion only at the moment. (Thus, RFC, not PATCH.) Also, I've used ==NULL style for null checks, to be more explicit, even if that's against the coding style. I'll change that for the actual patches, but for now during discussion, I prefer having the explicit tests for my own readability. The improvement seems quite obvious. Please let me know your opinion. I also have a few questions for the maintainers of the specific code, or at least for someone who deeply understands it, as I found some questionable code. (See the individual commit messages, and code comments for those.) On top of that, I have a question about the functions I'm adding, and the existing kernel snprintf(3): The standard snprintf(3) can fail (return -1), but the kernel one doesn't seem to return <0 ever. Should I assume that snprintf(3) doesn't fail here? (I have a comment in the source code of the implementation asking for that.) What do you think? Alejandro Colomar (3): vsprintf: Add [v]seprintf(), [v]stprintf() stacktrace, stackdepot: Add seprintf()-like variants of functions mm: Use seprintf() instead of less ergonomic APIs include/linux/stackdepot.h | 13 +++++ include/linux/stacktrace.h | 3 + kernel/stacktrace.c | 28 ++++++++++ lib/stackdepot.c | 12 ++++ lib/vsprintf.c | 109 +++++++++++++++++++++++++++++++++++++ mm/kfence/kfence_test.c | 24 ++++---- mm/kmsan/kmsan_test.c | 4 +- mm/mempolicy.c | 18 +++--- mm/page_owner.c | 32 ++++++----- mm/slub.c | 5 +- 10 files changed, 208 insertions(+), 40 deletions(-) Range-diff against v0: -: ------------ > 1: 2d20eaf1752e vsprintf: Add [v]seprintf(), [v]stprintf() -: ------------ > 2: ec2e375c2d1e stacktrace, stackdepot: Add seprintf()-like variants of functions -: ------------ > 3: be193e1856aa mm: Use seprintf() instead of less ergonomic APIs -- 2.50.0