Module Name:    src
Committed By:   yamt
Date:           Wed Oct 19 10:55:50 UTC 2011

Modified Files:
        src/external/cddl/osnet/dev/fbt: fbt.c

Log Message:
fbt_provide_module_cb: exclude some functions known unsafe to probe


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 src/external/cddl/osnet/dev/fbt/fbt.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/dev/fbt/fbt.c
diff -u src/external/cddl/osnet/dev/fbt/fbt.c:1.9 src/external/cddl/osnet/dev/fbt/fbt.c:1.10
--- src/external/cddl/osnet/dev/fbt/fbt.c:1.9	Wed Aug 31 21:57:16 2011
+++ src/external/cddl/osnet/dev/fbt/fbt.c	Wed Oct 19 10:55:50 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: fbt.c,v 1.9 2011/08/31 21:57:16 christos Exp $	*/
+/*	$NetBSD: fbt.c,v 1.10 2011/10/19 10:55:50 yamt Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -268,6 +268,21 @@ fbt_provide_module_cb(const char *name, 
 	if (name[0] == '_' && name[1] == '_')
 		return (0);
 
+	/*
+	 * Exclude some more symbols which can be called from probe context.
+	 */
+	if (strcmp(name, "x86_curcpu") == 0 /* CPU */
+	    || strcmp(name, "x86_curlwp") == 0 /* curproc, curlwp, curthread */
+	    || strcmp(name, "cpu_index") == 0 /* cpu_number, curcpu_id */
+	    || strncmp(name, "db_", 3) == 0 /* debugger */
+	    || strncmp(name, "ddb_", 4) == 0 /* debugger */
+	    || strncmp(name, "kdb_", 4) == 0 /* debugger */
+	    || strncmp(name, "lockdebug_", 10) == 0 /* lockdebug XXX for now */
+	    || strncmp(name, "kauth_", 5) == 0 /* CRED XXX for now */
+	    ) {
+		return 0;
+	}
+
 	instr = (u_int8_t *) value;
 	limit = (u_int8_t *) value + symsize;
 

Reply via email to