From 8dc5f487ec8f810704bdc70191d7b4e71f5f6174 Mon Sep 17 00:00:00 2001 From: Steve Dickson Date: Sat, 12 Nov 2011 08:55:42 -0500 Subject: Added key ring probs Signed-off-by: Steve Dickson --- nfs/nfs_idmap.stp | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ tapset/iserr.stp | 11 +++++++ tapset/key.stp | 12 ++++++++ 3 files changed, 109 insertions(+) create mode 100644 nfs/nfs_idmap.stp create mode 100644 tapset/iserr.stp create mode 100644 tapset/key.stp diff --git a/nfs/nfs_idmap.stp b/nfs/nfs_idmap.stp new file mode 100644 index 0000000..5591f13 --- /dev/null +++ b/nfs/nfs_idmap.stp @@ -0,0 +1,86 @@ +probe module("nfs").function("nfs_map_name_to_uid").return +{ + if ($return < 0) + printf("nfs_map_name_to_uid: '%s' --> %d(%s)\n", kernel_string($name), + $return, errno_str($return)); + else + printf("nfs_map_name_to_uid: '%s' --> %d\n", kernel_string($name), $return); +} +probe module("nfs").function("nfs_idmap_request_key").return +{ + if ($return < 0) + printf(" nfs_idmap_request_key: %d(%s)\n", $return, errno_str($return)); + else + printf(" nfs_idmap_request_key: %d\n", $return); +} +probe kernel.function("call_sbin_request_key").return +{ + if ($return < 0) + printf(" call_sbin_request_key: %d(%s)\n", $return, errno_str($return)); + else + printf(" call_sbin_request_key: %d\n", $return); +} +probe kernel.function("call_usermodehelper_exec").return +{ + if ($return < 0) + printf(" call_usermodehelper_exec: %d(%s)\n", $return, errno_str($return)); + else + printf(" call_usermodehelper_exec: %d\n", $return); +} +probe kernel.function("call_usermodehelper_setup").return +{ + if (is_err($return)) + printf(" call_usermodehelper_setup: path %s %ld(%s)\n", + kernel_string($path), $return, errno_str($return)); + else + printf(" call_usermodehelper_setup: path %s\n argv %s %s %s %s %s %s %s %s\n", + kernel_string($path), kernel_string($argv[0]), kernel_string($argv[1]), + kernel_string($argv[2]), kernel_string($argv[3]), kernel_string($argv[4]), + kernel_string($argv[5]), kernel_string($argv[6]), kernel_string($argv[7])); +} +probe kernel.function("request_key_and_link") +{ + printf(" request_key_and_link: type %s desc %s callout %p(%d)\n", + key_type($type), kernel_string($description), $callout_info, $callout_len); +} +probe kernel.function("request_key_and_link").return +{ + if (is_err($return)) + printf(" request_key_and_link: desc %s %ld(%s)\n", + kernel_string($description), $return, errno_str($return)); + else + printf(" request_key_and_link: desc %s %p\n", + kernel_string($description), $return); +} +/* +probe kernel.function("key_user_lookup").return +{ + if (is_err($return)) + printf(" key_user_lookup: uid %d %ld(%s)\n", + $uid, $return, errno_str($return)); + else + printf(" key_user_lookup: uid %d %p\n", + $uid, $return); +} +probe kernel.function("search_process_keyrings").return +{ + if (is_err($return)) + printf(" search_process_keyrings: %ld (%s)\n", $return, errno_str($return)); + else + printf(" search_process_keyrings: %p\n", $return); +} +probe kernel.function("search_my_process_keyrings").return +{ + if (is_err($return)) + printf(" search_my_process_keyrings: %ld(%s)\n", $return, errno_str($return)); + else + printf(" search_my_process_keyrings: %p\n", $return); +} +probe module("nfs").function("nfs_idmap_get_desc").return +{ + printf(" nfs_idmap_get_desc: %d\n", $return); +} +*/ +probe begin { log("starting nfsidmap probe") } +probe end { log("ending nfsidmap probe") } + diff --git a/tapset/iserr.stp b/tapset/iserr.stp new file mode 100644 index 0000000..26207fd --- /dev/null +++ b/tapset/iserr.stp @@ -0,0 +1,11 @@ +%{ +#include +#include +%} + +function is_err:long(_ptr:long) +%{ + THIS->__retvalue = (long)IS_ERR((char *)THIS->_ptr); + + CATCH_DEREF_FAULT(); +%} diff --git a/tapset/key.stp b/tapset/key.stp new file mode 100644 index 0000000..7a40d7d --- /dev/null +++ b/tapset/key.stp @@ -0,0 +1,12 @@ +%{ +#include +%} + +function key_type:string(_ptr:long) +%{ + struct key_type *type = (struct key_type *)(long)kread(&(THIS->_ptr)); + + snprintf(THIS->__retvalue, MAXSTRINGLEN, "%s", type->name); + + CATCH_DEREF_FAULT(); +%} -- cgit