Received: by 10.223.185.116 with SMTP id b49csp694196wrg; Wed, 21 Feb 2018 05:31:38 -0800 (PST) X-Google-Smtp-Source: AH8x227FxEwGXuUaM4WguY/Om8vThA/Yh365009DbPEQtyosi9geZH7OWqohBxqhTv84A8/TK5Ma X-Received: by 2002:a17:902:4381:: with SMTP id j1-v6mr3134169pld.297.1519219898281; Wed, 21 Feb 2018 05:31:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519219898; cv=none; d=google.com; s=arc-20160816; b=1I3EYRd29TlMmwKib5yotdlcSq94IaP7lzVJenVoXikBaYkykJA6RFJN3sMBiy+Jc2 LybV9eXKyogdfXk3JCvvk6EWdNlavu3ybF8mPpMHUle51Q36iO5s3V4cgHBji/Sj8NE3 tqmIVRCm3He5SjITjC/n30Hy+H2aUAPD66iio43vf0h0HlXsA3+b6hw3BTVdS/lk98uV WXmlrQBrzuzhEGP+R+OLpUSW2WR2ri7E68gr5F+0U6/ax2wvsVh9/3qgE4gpgNyUaOR7 IHkyNtXZjVSWbJeHEfYpGtNupdod5Hc5989K97tKI05l6QgrofrRPLJSrpKqEPgsdnLF dRDA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=Evzb+KeLtElVko7fjKNnrwkN0RgzKkptHgACjqA2AgQ=; b=wwOKld3+uiZolM5fIz8urj0FBNs6SO9lrKfhH4SLHspLBwRTpbFMIZT+QhCrrJEF9Z cR9azjyVBUzVzOuzbsbDWlrw+O744hU6ahOFR7fM7+11ysmbd+iMAziL4CSouMKvGfOG UYN6vUkc9SteI9n+l9kGEoLht73EP2RE8nGfkEEEUYzQmdMp/NvzUKvAqTJm3KgyfIpk ny+fHywFboirfiGsa68MtW/Dn63dskkPJl0Ad0gooACv+0R7LCT+SYos5Cxp/+v79VpK HvpqDhiLWmvQZ6YmkCLKdXZI3hmI/igFhs8RfLdJSx3yFDQP0ZOAaBZ/nCw0t4PzM2AU /rWA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 73-v6si531462ple.195.2018.02.21.05.31.22; Wed, 21 Feb 2018 05:31:38 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933184AbeBUNDU (ORCPT + 99 others); Wed, 21 Feb 2018 08:03:20 -0500 Received: from mail.linuxfoundation.org ([140.211.169.12]:39498 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933197AbeBUNDQ (ORCPT ); Wed, 21 Feb 2018 08:03:16 -0500 Received: from localhost (LFbn-1-12258-90.w90-92.abo.wanadoo.fr [90.92.71.90]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id C32AB10BA; Wed, 21 Feb 2018 13:03:15 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Masami Hiramatsu , Al Viro , "Steven Rostedt (VMware)" Subject: [PATCH 4.14 122/167] tracing: Fix parsing of globs with a wildcard at the beginning Date: Wed, 21 Feb 2018 13:48:53 +0100 Message-Id: <20180221124531.192670190@linuxfoundation.org> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20180221124524.639039577@linuxfoundation.org> References: <20180221124524.639039577@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.14-stable review patch. If anyone has any objections, please let me know. ------------------ From: Steven Rostedt (VMware) commit 07234021410bbc27b7c86c18de98616c29fbe667 upstream. Al Viro reported: For substring - sure, but what about something like "*a*b" and "a*b"? AFAICS, filter_parse_regex() ends up with identical results in both cases - MATCH_GLOB and *search = "a*b". And no way for the caller to tell one from another. Testing this with the following: # cd /sys/kernel/tracing # echo '*raw*lock' > set_ftrace_filter bash: echo: write error: Invalid argument With this patch: # echo '*raw*lock' > set_ftrace_filter # cat set_ftrace_filter _raw_read_trylock _raw_write_trylock _raw_read_unlock _raw_spin_unlock _raw_write_unlock _raw_spin_trylock _raw_spin_lock _raw_write_lock _raw_read_lock Al recommended not setting the search buffer to skip the first '*' unless we know we are not using MATCH_GLOB. This implements his suggested logic. Link: http://lkml.kernel.org/r/20180127170748.GF13338@ZenIV.linux.org.uk Cc: stable@vger.kernel.org Fixes: 60f1d5e3bac44 ("ftrace: Support full glob matching") Reviewed-by: Masami Hiramatsu Reported-by: Al Viro Suggsted-by: Al Viro Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Greg Kroah-Hartman --- kernel/trace/trace_events_filter.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) --- a/kernel/trace/trace_events_filter.c +++ b/kernel/trace/trace_events_filter.c @@ -400,7 +400,6 @@ enum regex_type filter_parse_regex(char for (i = 0; i < len; i++) { if (buff[i] == '*') { if (!i) { - *search = buff + 1; type = MATCH_END_ONLY; } else if (i == len - 1) { if (type == MATCH_END_ONLY) @@ -410,14 +409,14 @@ enum regex_type filter_parse_regex(char buff[i] = 0; break; } else { /* pattern continues, use full glob */ - type = MATCH_GLOB; - break; + return MATCH_GLOB; } } else if (strchr("[?\\", buff[i])) { - type = MATCH_GLOB; - break; + return MATCH_GLOB; } } + if (buff[0] == '*') + *search = buff + 1; return type; }