From patchwork Wed Nov 1 21:37:21 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 160692 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:abcd:0:b0:403:3b70:6f57 with SMTP id f13csp724604vqx; Wed, 1 Nov 2023 14:38:57 -0700 (PDT) X-Google-Smtp-Source: AGHT+IH5Zjb/yOTNj8X2rKuWpA3zLA9rp1drzv8AT8ItAPu1teLE05TtVMOwBpB1GEX78NyHIUEA X-Received: by 2002:a05:6a00:2e28:b0:68e:41e9:10be with SMTP id fc40-20020a056a002e2800b0068e41e910bemr17020929pfb.20.1698874736995; Wed, 01 Nov 2023 14:38:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1698874736; cv=none; d=google.com; s=arc-20160816; b=wihZHG2idFytPtB8hea5acoGxReRJTR0xbYZI78jwpJtGusVu1p1HisGOtWVckS1Nj iT0Z7HIAFzSnondrtQiK91i/TtSk4EobbRq5c/YY2ycd9erl6H+6Kt0726D3v0p3Yyy+ 67EJwDGrnG8rKt/tS1uTutC02pRQMEh2qvJKdvKPoTXX+c/f0jaAdZZrNx+XzKYuJ5au JT3qC42CQ/oHFRG2JusXVo1NfWVf9uz7AuUq+z81P+zTnc5ABrx8+qhnVJzcRSNZY5m2 r2TsblVndODLRJVHlzm7ITT9tQV/w8VI2K3DZqEeNKuAlpYgl8dFi/YiVd+D9w+TXPIC /XKw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:subject:cc:to:from:date :user-agent:message-id; bh=Qya1HUkJBrTVX02AqqD1ECBG22pscqbIYhORPkX77xg=; fh=JA36TzTdH0VdABW376YBEoeO8tTJvd1rsS1jL9I5ObE=; b=MLkVSFnX8xm6DpinqIyf3hd9vfSW/twSJ4paZqMgW/3iXh2L6RyEUPh0Tea4qc5ug4 csaJeU9jSXvJEY4OCEI18HQZZ7Ohld6QMPrPIf0ceXrnW/ucVJ7McaNVlLV4YtSyycDP Cmy56secJNhjciHqvX+gHQV9k6W6g1rlUvp3uc7LDk3Ee75WCOighvQgXx5qw6T2HXsl ++V0hUIxpd+DCr2Hb5RSaGqSmFxAZmTDmFf1kvBTTfm7nr+M2kLrCesIB7J9fUhVY4Tk E1lZYjOs48rUS+GEr/BFuX1I4sxJ89f96qzu3s+pBGz3zqWoWLXNUE0BlhPTsSKNg3fZ IcJQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from agentk.vger.email (agentk.vger.email. [23.128.96.32]) by mx.google.com with ESMTPS id v69-20020a638948000000b005b91536981csi700589pgd.11.2023.11.01.14.38.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Nov 2023 14:38:56 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) client-ip=23.128.96.32; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by agentk.vger.email (Postfix) with ESMTP id B913280278C4; Wed, 1 Nov 2023 14:38:44 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at agentk.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1346001AbjKAViL (ORCPT + 35 others); Wed, 1 Nov 2023 17:38:11 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38596 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345802AbjKAViG (ORCPT ); Wed, 1 Nov 2023 17:38:06 -0400 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BD97B120; Wed, 1 Nov 2023 14:38:03 -0700 (PDT) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6AD84C433CD; Wed, 1 Nov 2023 21:38:03 +0000 (UTC) Received: from rostedt by gandalf with local (Exim 4.96) (envelope-from ) id 1qyIuY-00EdXf-1M; Wed, 01 Nov 2023 17:38:02 -0400 Message-ID: <20231101213802.233842141@goodmis.org> User-Agent: quilt/0.66 Date: Wed, 01 Nov 2023 17:37:21 -0400 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Mark Rutland , Andrew Morton , stable@vger.kernel.org, kernel test robot Subject: [for-next][PATCH 03/12] tracing: Have the user copy of synthetic event address use correct context References: <20231101213718.381015321@goodmis.org> MIME-Version: 1.0 X-Spam-Status: No, score=-0.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on agentk.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (agentk.vger.email [0.0.0.0]); Wed, 01 Nov 2023 14:38:44 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1781399276151688365 X-GMAIL-MSGID: 1781399276151688365 From: "Steven Rostedt (Google)" A synthetic event is created by the synthetic event interface that can read both user or kernel address memory. In reality, it reads any arbitrary memory location from within the kernel. If the address space is in USER (where CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE is set) then it uses strncpy_from_user_nofault() to copy strings otherwise it uses strncpy_from_kernel_nofault(). But since both functions use the same variable there's no annotation to what that variable is (ie. __user). This makes sparse complain. Quiet sparse by typecasting the strncpy_from_user_nofault() variable to a __user pointer. Link: https://lore.kernel.org/linux-trace-kernel/20231031151033.73c42e23@gandalf.local.home Cc: stable@vger.kernel.org Cc: Masami Hiramatsu Cc: Mark Rutland Fixes: 0934ae9977c2 ("tracing: Fix reading strings from synthetic events"); Reported-by: kernel test robot Closes: https://lore.kernel.org/oe-kbuild-all/202311010013.fm8WTxa5-lkp@intel.com/ Signed-off-by: Steven Rostedt (Google) --- kernel/trace/trace_events_synth.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/trace/trace_events_synth.c b/kernel/trace/trace_events_synth.c index 14cb275a0bab..846e02c0fb59 100644 --- a/kernel/trace/trace_events_synth.c +++ b/kernel/trace/trace_events_synth.c @@ -452,7 +452,7 @@ static unsigned int trace_string(struct synth_trace_event *entry, #ifdef CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE if ((unsigned long)str_val < TASK_SIZE) - ret = strncpy_from_user_nofault(str_field, str_val, STR_VAR_LEN_MAX); + ret = strncpy_from_user_nofault(str_field, (const void __user *)str_val, STR_VAR_LEN_MAX); else #endif ret = strncpy_from_kernel_nofault(str_field, str_val, STR_VAR_LEN_MAX);