From patchwork Wed Jul 5 14:40:34 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 116188 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9f45:0:b0:3ea:f831:8777 with SMTP id v5csp1923193vqx; Wed, 5 Jul 2023 07:53:00 -0700 (PDT) X-Google-Smtp-Source: APBJJlF8IPw5xiKgEk7njm3mUG/VzUccEw7ESqtpCYVk5AFzEHbuMpxuVqkW9HZ2/Q7Gm9XZW0dO X-Received: by 2002:a92:d905:0:b0:345:bace:9ea4 with SMTP id s5-20020a92d905000000b00345bace9ea4mr14967698iln.31.1688568780262; Wed, 05 Jul 2023 07:53:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688568780; cv=none; d=google.com; s=arc-20160816; b=HrWeI14rOf+tb7McAGl9LJpexRchFGqTOlYUgonTIEI78slku36y+tHO+lqBRo/4+N 1XYY6i4JX8HC3GFhLrDgXVJrqrss+0IE7DJrBdOusHx1BNMOHkgtExZlmEkeJwNj7Lmg HlTc5SdnAyMK1RXmsVSFtiE+NRWRZokM0kVT8jq8ggBFmWRcNOJDrklrurA0GLba3EXp L7tPS81hnjAdwkEzezPdSzFRsw7dfz1LnH4e+pHTpzFU7Qj7SQ9m8O2ikwI+k2D93GKY lzoMNMZCw3vLLpqJIluKjxq04zN+OYCtSIKgdeV2F0RKIRcL6Td12eiQFMcVONwctTAN we3A== 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=21NyYpvlfaiP4fEDclKVI3RrXE0tGf8gLd00eIoTBo0=; fh=5BSBmjZOSGypY3Wn22FExHU7oK6GR4W2PILq9NMOdfs=; b=e+hgwGvkK194dpREb7tWaUnvAYJpU8IPOsWTZScooOYgufihrkP/FGrzm0alBgB2CZ to9D6Mfg5uTtG8hNMM03cMeinxrCLFZRdpAo5ZlABW45B0vFkTE0T3+k0LytmwMJyd4t 2a3F55izsiZlGXbsQfR3ve9IOMmmYWazxpwh44Oc2/ZdLEO61fXpAX2uhy6l/8MCJjnY z0W47kcT3Jc4htUNH9NUrNHSr2B8a3ofyfTFFO+e+IAeziVlQkht/uDDpX3zAEnKEhav w64Fr7Ih4YOl5ZYC+CXXiXX1GtGiMf5OSkWM4RuebU8lYtG5oT7UVQ6s91M1Vc2CPqzE C1fQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id a7-20020a634d07000000b00543e36736d3si24057192pgb.628.2023.07.05.07.52.46; Wed, 05 Jul 2023 07:53:00 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232677AbjGEOqn (ORCPT + 99 others); Wed, 5 Jul 2023 10:46:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52820 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232244AbjGEOqg (ORCPT ); Wed, 5 Jul 2023 10:46:36 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6BEDF10D5 for ; Wed, 5 Jul 2023 07:46:34 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id EB66F615C9 for ; Wed, 5 Jul 2023 14:46:33 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5D96BC433C8; Wed, 5 Jul 2023 14:46:33 +0000 (UTC) Received: from rostedt by gandalf with local (Exim 4.96) (envelope-from ) id 1qH3m4-003PiJ-1Y; Wed, 05 Jul 2023 10:46:32 -0400 Message-ID: <20230705144632.294731621@goodmis.org> User-Agent: quilt/0.66 Date: Wed, 05 Jul 2023 10:40:34 -0400 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Mark Rutland , Andrew Morton , Azeem Shaikh , Kees Cook Subject: [for-linus][PATCH 3/3] tracing/boot: Test strscpy() against less than zero for error References: <20230705144031.702796304@goodmis.org> MIME-Version: 1.0 X-Spam-Status: No, score=-6.7 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_HI,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1770592696914195605?= X-GMAIL-MSGID: =?utf-8?q?1770592696914195605?= From: "Steven Rostedt (Google)" Instead of checking for -E2BIG, it is better to just check for less than zero of strscpy() for error. Testing for -E2BIG is not very robust, and the calling code does not really care about the error code, just that there was an error. One of the updates to convert strlcpy() to strscpy() had a v2 version that changed the test from testing against -E2BIG to less than zero, but I took the v1 version that still tested for -E2BIG. Link: https://lore.kernel.org/linux-trace-kernel/20230615180420.400769-1-azeemshaikh38@gmail.com/ Link: https://lore.kernel.org/linux-trace-kernel/20230704100807.707d1605@rorschach.local.home Cc: Mark Rutland Cc: Azeem Shaikh Cc: Kees Cook Acked-by: Masami Hiramatsu (Google) Signed-off-by: Steven Rostedt (Google) --- kernel/trace/trace_boot.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/kernel/trace/trace_boot.c b/kernel/trace/trace_boot.c index 5fe525f1b8cc..7ccc7a8e155b 100644 --- a/kernel/trace/trace_boot.c +++ b/kernel/trace/trace_boot.c @@ -31,7 +31,7 @@ trace_boot_set_instance_options(struct trace_array *tr, struct xbc_node *node) /* Common ftrace options */ xbc_node_for_each_array_value(node, "options", anode, p) { - if (strscpy(buf, p, ARRAY_SIZE(buf)) == -E2BIG) { + if (strscpy(buf, p, ARRAY_SIZE(buf)) < 0) { pr_err("String is too long: %s\n", p); continue; } @@ -87,7 +87,7 @@ trace_boot_enable_events(struct trace_array *tr, struct xbc_node *node) const char *p; xbc_node_for_each_array_value(node, "events", anode, p) { - if (strscpy(buf, p, ARRAY_SIZE(buf)) == -E2BIG) { + if (strscpy(buf, p, ARRAY_SIZE(buf)) < 0) { pr_err("String is too long: %s\n", p); continue; } @@ -486,7 +486,7 @@ trace_boot_init_one_event(struct trace_array *tr, struct xbc_node *gnode, p = xbc_node_find_value(enode, "filter", NULL); if (p && *p != '\0') { - if (strscpy(buf, p, ARRAY_SIZE(buf)) == -E2BIG) + if (strscpy(buf, p, ARRAY_SIZE(buf)) < 0) pr_err("filter string is too long: %s\n", p); else if (apply_event_filter(file, buf) < 0) pr_err("Failed to apply filter: %s\n", buf); @@ -494,7 +494,7 @@ trace_boot_init_one_event(struct trace_array *tr, struct xbc_node *gnode, if (IS_ENABLED(CONFIG_HIST_TRIGGERS)) { xbc_node_for_each_array_value(enode, "actions", anode, p) { - if (strscpy(buf, p, ARRAY_SIZE(buf)) == -E2BIG) + if (strscpy(buf, p, ARRAY_SIZE(buf)) < 0) pr_err("action string is too long: %s\n", p); else if (trigger_process_regex(file, buf) < 0) pr_err("Failed to apply an action: %s\n", p);