#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 <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>#include <linux/namei.h>Go to the source code of this file.
Functions | |
| MODULE_AUTHOR ("Michal Purzynski") | |
| MODULE_DESCRIPTION ("RSBAC REG modules_off decision module") | |
| MODULE_LICENSE ("GPL") | |
| 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 = 9999991 |
| static rsbac_inode_nr_t | inode_nr = 0 |
| static kdev_t | device_nr = 0 |
|
|
Definition at line 98 of file modules_off.c. References handle, rsbac_printk(), and rsbac_reg_unregister(). 00099 {
00100 rsbac_printk(KERN_INFO "RSBAC REG decision module modules_off: Unregistering.\n");
00101
00102 if(rsbac_reg_unregister(handle))
00103 {
00104 rsbac_printk(KERN_ERR "RSBAC REG decision module modules_off: Unregistering failed - beware of possible system failure!\n");
00105 }
00106
00107 rsbac_printk(KERN_INFO "RSBAC REG decision module modules_off: Unloaded.\n");
00108 }
|
|
|
Definition at line 62 of file modules_off.c. References device_nr, handle, inode_nr, request_func(), rsbac_printk(), rsbac_reg_register(), RSBAC_REG_VERSION, and TRUE. 00063 {
00064
00065 struct rsbac_reg_entry_t entry;
00066 struct nameidata nd;
00067
00068 path_lookup("/proc/modules", 0, &nd);
00069 device_nr = nd.dentry->d_sb->s_dev;
00070 inode_nr = nd.dentry->d_inode->i_ino;
00071 path_release(&nd);
00072
00073 rsbac_printk(KERN_INFO "RSBAC REG decision module modules_off: Initializing.\n");
00074
00075 /* clearing registration entries */
00076 memset(&entry, 0, sizeof(entry));
00077
00078 strcpy(entry.name, "RSBAC REG modules_off ADF module");
00079 rsbac_printk(KERN_INFO "RSBAC REG decision module modules_off: REG Version: %u, Name: %s, Handle: %li\n",RSBAC_REG_VERSION, entry.name, handle);
00080
00081 entry.handle = handle;
00082 entry.request_func = request_func;
00083 entry.switch_on = TRUE;
00084
00085 rsbac_printk(KERN_INFO "RSBAC REG decision module modules_off: Registering to ADF.\n");
00086
00087 if(rsbac_reg_register(RSBAC_REG_VERSION, entry) < 0)
00088 {
00089 rsbac_printk(KERN_WARNING "RSBAC REG decision module sample 1: Registering failed. Unloading.\n");
00090 return -ENOEXEC;
00091 }
00092
00093 rsbac_printk(KERN_INFO "RSBAC REG decision module modules_off: Loaded.\n");
00094
00095 return 0;
00096 }
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||
|
Definition at line 35 of file modules_off.c. References device_nr, DO_NOT_CARE, inode_nr, NOT_GRANTED, R_ADD_TO_KERNEL, R_GET_STATUS_DATA, R_REMOVE_FROM_KERNEL, and T_FILE. 00042 {
00043 switch (request) {
00044 case R_ADD_TO_KERNEL:
00045 case R_REMOVE_FROM_KERNEL:
00046 return NOT_GRANTED;
00047 case R_GET_STATUS_DATA:
00048 switch (target) {
00049 case T_FILE:
00050 if (tid.file.device == device_nr && tid.file.inode == inode_nr)
00051 return NOT_GRANTED;
00052 default:
00053 return DO_NOT_CARE;
00054 }
00055 default:
00056 return DO_NOT_CARE;
00057 }
00058 }
|
|
|
Definition at line 31 of file modules_off.c. Referenced by init_module(), and request_func(). |
|
|
Definition at line 28 of file modules_off.c. |
|
|
Definition at line 30 of file modules_off.c. Referenced by init_module(), and request_func(). |
1.4.2