lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Wed, 17 Dec 2008 17:14:34 -0500 (EST)
From:	Steven Rostedt <rostedt@...dmis.org>
To:	LKML <linux-kernel@...r.kernel.org>
cc:	Ingo Molnar <mingo@...e.hu>,
	Andrew Morton <akpm@...ux-foundation.org>,
	Frédéric Weisbecker <fweisbec@...il.com>
Subject: [PATCH] ftrace: add not to regex on filtering functions


The following patch is in:

  git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace.git

    branch: tip/devel


Steven Rostedt (1):
      ftrace: add not to regex on filtering functions

----
 kernel/trace/ftrace.c |   15 +++++++++++++--
 1 files changed, 13 insertions(+), 2 deletions(-)
---------------------------
commit 697732357fc9af46c5cbd865877495c9b52fb1e0
Author: Steven Rostedt <srostedt@...hat.com>
Date:   Wed Dec 17 15:05:36 2008 -0500

    ftrace: add not to regex on filtering functions
    
    Impact: enhancement
    
    Ingo Molnar has asked about a way to remove items from the filter
    lists. Currently, you can only add or replace items. The way
    items are added to the list is through opening one of the list
    files (set_ftrace_filter or set_ftrace_notrace) via append.
    If the file is opened for truncate, the list is cleared.
    
      echo spin_lock > /debug/tracing/set_ftrace_filter
    
    The above will replace the list with only spin_lock
    
      echo spin_lock >> /debug/tracing/set_ftrace_filter
    
    The above will add spin_lock to the list.
    
    Now this patch adds:
    
      echo '!spin_lock' >> /debug/tracing/set_ftrace_filter
    
    This will remove spin_lock from the list.
    
    The limited glob features of these lists also can be notted.
    
      echo '!spin_*' >> /debug/tracing/set_ftrace_filter
    
    This will remove all functions that start with 'spin_'
    
    Note:
    
      echo '!spin_*' > /debug/tracing/set_ftrace_filter
    
    will simply clear out the list (notice the '>' instead of '>>')
    
    Signed-off-by: Steven Rostedt <srostedt@...hat.com>

diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index a12f80e..2f32969 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -1047,6 +1047,13 @@ ftrace_match(unsigned char *buff, int len, int enable)
 	int type = MATCH_FULL;
 	unsigned long flag = enable ? FTRACE_FL_FILTER : FTRACE_FL_NOTRACE;
 	unsigned i, match = 0, search_len = 0;
+	int not = 0;
+
+	if (buff[0] == '!') {
+		not = 1;
+		buff++;
+		len--;
+	}
 
 	for (i = 0; i < len; i++) {
 		if (buff[i] == '*') {
@@ -1100,8 +1107,12 @@ ftrace_match(unsigned char *buff, int len, int enable)
 					matched = 1;
 				break;
 			}
-			if (matched)
-				rec->flags |= flag;
+			if (matched) {
+				if (not)
+					rec->flags &= ~flag;
+				else
+					rec->flags |= flag;
+			}
 		}
 		pg = pg->next;
 	}

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ