#include <linux/config.h>#include <linux/module.h>#include <linux/types.h>#include <linux/kernel.h>#include <linux/string.h>#include <linux/fs.h>#include <linux/sched.h>#include <linux/file.h>#include <rsbac/types.h>#include <rsbac/reg.h>#include <rsbac/adf.h>#include <rsbac/aci.h>#include <rsbac/getname.h>#include <rsbac/error.h>#include <rsbac/proc_fs.h>Go to the source code of this file.
Functions | |
| MODULE_AUTHOR ("Michal Purzynski") | |
| MODULE_DESCRIPTION ("RSBAC REG kproc_hide decision module") | |
| MODULE_LICENSE ("GPL") | |
| int | is_kproc (int pid) |
| static int | request_func (enum rsbac_adf_request_t request, rsbac_pid_t owner_pid, enum rsbac_target_t target, union rsbac_target_id_t tid, enum rsbac_attribute_t attr, union rsbac_attribute_value_t attr_val, rsbac_uid_t owner) |
| int | init_module (void) |
| void | cleanup_module (void) |
Variables | |
| static long | handle = 9999992 |
|
|
Definition at line 111 of file kproc_hide.c. References handle, rsbac_printk(), and rsbac_reg_unregister(). 00112 {
00113 rsbac_printk(KERN_INFO "RSBAC REG decision module kproc_hide: Unregistering.\n");
00114
00115 if(rsbac_reg_unregister(handle))
00116 {
00117 rsbac_printk(KERN_ERR "RSBAC REG decision module kproc_hide: Unregistering failed - beware of possible system failure!\n");
00118 }
00119
00120 rsbac_printk(KERN_INFO "RSBAC REG decision module kproc_hide: Unloaded.\n");
00121 }
|
|
|
Definition at line 83 of file kproc_hide.c. References handle, request_func(), rsbac_printk(), rsbac_reg_register(), RSBAC_REG_VERSION, and TRUE. 00084 {
00085 struct rsbac_reg_entry_t entry;
00086
00087 rsbac_printk(KERN_INFO "RSBAC REG decision module kproc_hide: Initializing.\n");
00088
00089 /* clearing registration entries */
00090 memset(&entry, 0, sizeof(entry));
00091
00092 strcpy(entry.name, "RSBAC REG kproc_hide ADF module");
00093 rsbac_printk(KERN_INFO "RSBAC REG decision module kproc_hide: REG Version: %u, Name: %s, Handle: %li\n",
00094 RSBAC_REG_VERSION, entry.name, handle);
00095
00096 entry.handle = handle;
00097 entry.request_func = request_func;
00098 entry.switch_on = TRUE;
00099 rsbac_printk(KERN_INFO "RSBAC REG decision module kproc_hide: Registering to ADF.\n");
00100
00101 if(rsbac_reg_register(RSBAC_REG_VERSION, entry) < 0) {
00102 rsbac_printk(KERN_WARNING "RSBAC REG decision module sample 1: Registering failed. Unloading.\n");
00103 return -ENOEXEC;
00104 }
00105
00106 rsbac_printk(KERN_INFO "RSBAC REG decision module kproc_hide: Loaded.\n");
00107
00108 return 0;
00109 }
|
|
|
Definition at line 37 of file kproc_hide.c. References NULL. Referenced by request_func(). 00038 {
00039 struct task_struct *tid_task;
00040
00041 tid_task = find_task_by_pid(pid);
00042
00043 if (tid_task->mm == NULL)
00044 return 1;
00045 else
00046 return 0;
00047 }
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||
|
Definition at line 51 of file kproc_hide.c. References DO_NOT_CARE, is_kproc(), NOT_GRANTED, rsbac_target_id_t::process, R_GET_STATUS_DATA, and T_PROCESS. Referenced by init_module(). 00058 {
00059
00060 switch (request) {
00061 case R_GET_STATUS_DATA:
00062 switch (target) {
00063 case T_PROCESS:
00064 if (is_kproc(tid.process))
00065 return NOT_GRANTED;
00066 default:
00067 return DO_NOT_CARE;
00068 }
00069 default:
00070 return DO_NOT_CARE;
00071 }
00072
00073 /*
00074 if (request == R_GET_STATUS_DATA && target == T_PROCESS && is_kproc(tid.process))
00075 return NOT_GRANTED;
00076 else
00077 return GRANTED;
00078 */
00079 }
|
|
|
Definition at line 27 of file kproc_hide.c. Referenced by cleanup_module(), init_module(), and set_attr_dev(). |
1.4.2