- printk("Procprotect: starting procprotect version %s with ACLs at path %s.\n",
- VERSION_STR, aclpath);
- int ret;
- int i;
-
- for(i=0;i<HASH_SIZE;i++) {
- INIT_HLIST_HEAD(&procprotect_hash[i]);
- }
-
- aclqpath.name = aclpath;
- aclqpath.len = strnlen(aclpath, PATH_MAX);
-
- proc_probe.kp.addr =
- (kprobe_opcode_t *) kallsyms_lookup_name("do_lookup");
- if (!proc_probe.kp.addr) {
- printk("Couldn't find %s to plant kretprobe\n", "do_execve");
- return -1;
- }
-
- if ((ret = register_kretprobe(&proc_probe)) <0) {
- printk("register_kretprobe failed, returned %d\n", ret);
+ printk("Procprotect: starting procprotect version %s with ACLs at path %s.\n",
+ VERSION_STR, aclpath);
+ int ret;
+ int i;
+
+ for(i=0;i<HASH_SIZE;i++) {
+ INIT_HLIST_HEAD(&procprotect_hash[i]);
+ }
+
+ aclqpath.name = aclpath;
+ aclqpath.len = strnlen(aclpath, PATH_MAX);
+
+ proc_probe.kp.addr =
+ (kprobe_opcode_t *) kallsyms_lookup_name("do_lookup");
+ if (!proc_probe.kp.addr) {
+ printk("Couldn't find %s to plant kretprobe\n", "do_execve");
+ return -1;
+ }
+
+ dolast_probe.kp.addr =
+ (kprobe_opcode_t *) kallsyms_lookup_name("do_last");
+
+ if (!dolast_probe.kp.addr) {
+ printk("Couldn't find %s to plant kretprobe\n", "do_last");
+ return -1;
+ }
+
+ if ((ret = register_jprobe(&dolast_probe)) <0) {
+ printk("register_jprobe failed, returned %u\n", ret);