From nobody Tue Jun 23 15:16:39 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id BF66EC433F5 for ; Thu, 3 Mar 2022 03:17:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232007AbiCCDSk (ORCPT ); Wed, 2 Mar 2022 22:18:40 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57356 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231975AbiCCDSi (ORCPT ); Wed, 2 Mar 2022 22:18:38 -0500 Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:e::133]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6FDE6488BD for ; Wed, 2 Mar 2022 19:17:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding: MIME-Version:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type: Content-ID:Content-Description:In-Reply-To:References; bh=KmisOVaF/pydeRjPJ8LAOTaqZu2uZJoN0GlHrJ3jTgk=; b=ebHEJWpGVJe764hVenPrKMqYDl xybnOjh9Ho0f26P+hLskJ3TyyvwnFvv/bWsiWUxyQkv1e/gtRg7d23qbYMcwiTt790A3bx7JNvWJL b2wfKZ24AaCyvmUDgb8/aviLy/k2A8dWwUO3zt0KUC1STHdRbDVrhLsUu6n+fhQqk9W1ysz+wNgi4 uxPr58G/S4Qmr3p7Bguv0kNGI0a2kdVXf2edOp5cx7XT3A3dFGte3xzOyC7ZuvXja1/gvkFcXR5qe O2y7LE6mB9zvZkX3yTg4V05Y4vBb+oZcPWDGoVRkMK/g18Ejent0Z2PGEj2gjmM8OGVGSb7FRQhnx jlZezlYQ==; Received: from [2601:1c0:6280:3f0::aa0b] (helo=bombadil.infradead.org) by bombadil.infradead.org with esmtpsa (Exim 4.94.2 #2 (Red Hat Linux)) id 1nPbyL-0055ao-NU; Thu, 03 Mar 2022 03:17:45 +0000 From: Randy Dunlap To: linux-kernel@vger.kernel.org Cc: Randy Dunlap , Igor Zhbanov , Steven Rostedt , Masami Hiramatsu , Ingo Molnar Subject: [PATCH] trace: fix return value of __setup handlers Date: Wed, 2 Mar 2022 19:17:44 -0800 Message-Id: <20220303031744.32356-1-rdunlap@infradead.org> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" __setup() handlers should generally return 1 to indicate that the boot options have been handled. Using invalid option values causes the entire kernel boot option string to be reported as Unknown and added to init's environment strings, polluting it. Unknown kernel command line parameters "BOOT_IMAGE=3D/boot/bzImage-517rc6 kprobe_event=3Dp,syscall_any,$arg1 trace_options=3Dquiet trace_clock=3Djiffies", will be passed to user space. Run /sbin/init as init process with arguments: /sbin/init with environment: HOME=3D/ TERM=3Dlinux BOOT_IMAGE=3D/boot/bzImage-517rc6 kprobe_event=3Dp,syscall_any,$arg1 trace_options=3Dquiet trace_clock=3Djiffies Return 1 from the __setup() handlers so that init's environment is not polluted with kernel boot options. Fixes: 7bcfaf54f591 ("tracing: Add trace_options kernel command line parame= ter") Fixes: e1e232ca6b8f ("tracing: Add trace_clock=3D kernel parameter") Fixes: 970988e19eb0 ("tracing/kprobe: Add kprobe_event=3D boot parameter") Signed-off-by: Randy Dunlap Reported-by: Igor Zhbanov Link: lore.kernel.org/r/64644a2f-4a20-bab3-1e15-3b2cdd0defe3@omprussia.ru Cc: Steven Rostedt Cc: Masami Hiramatsu Cc: Ingo Molnar Acked-by: Masami Hiramatsu --- "trace_clock=3D" reports invalid parameter usage later, when it tries to use the value: Trace clock jiffies not defined, going back to default kernel/trace/trace.c | 4 ++-- kernel/trace/trace_kprobe.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) --- linux-next-20220302.orig/kernel/trace/trace.c +++ linux-next-20220302/kernel/trace/trace.c @@ -235,7 +235,7 @@ static char trace_boot_options_buf[MAX_T static int __init set_trace_boot_options(char *str) { strlcpy(trace_boot_options_buf, str, MAX_TRACER_SIZE); - return 0; + return 1; } __setup("trace_options=3D", set_trace_boot_options); =20 @@ -246,7 +246,7 @@ static int __init set_trace_boot_clock(c { strlcpy(trace_boot_clock_buf, str, MAX_TRACER_SIZE); trace_boot_clock =3D trace_boot_clock_buf; - return 0; + return 1; } __setup("trace_clock=3D", set_trace_boot_clock); =20 --- linux-next-20220302.orig/kernel/trace/trace_kprobe.c +++ linux-next-20220302/kernel/trace/trace_kprobe.c @@ -32,7 +32,7 @@ static int __init set_kprobe_boot_events strlcpy(kprobe_boot_events_buf, str, COMMAND_LINE_SIZE); disable_tracing_selftest("running kprobe events"); =20 - return 0; + return 1; } __setup("kprobe_event=3D", set_kprobe_boot_events);