/linux-2.6.21.1-rsbac-1.3.4/rsbac/adf/reg/kproc_hide.c File Reference

#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


Function Documentation

void cleanup_module ( void   ) 

Definition at line 110 of file kproc_hide.c.

References handle, rsbac_printk(), and rsbac_reg_unregister().

00111 {
00112         rsbac_printk(KERN_INFO "RSBAC REG decision module kproc_hide: Unregistering.\n");
00113         
00114         if(rsbac_reg_unregister(handle))
00115         {
00116                 rsbac_printk(KERN_ERR "RSBAC REG decision module kproc_hide: Unregistering failed - beware of possible system failure!\n");
00117         }
00118         
00119         rsbac_printk(KERN_INFO "RSBAC REG decision module kproc_hide: Unloaded.\n");
00120 }

int init_module ( void   ) 

Definition at line 82 of file kproc_hide.c.

References handle, request_func(), rsbac_printk(), rsbac_reg_register(), RSBAC_REG_VERSION, and TRUE.

00083 {
00084         struct rsbac_reg_entry_t entry;
00085 
00086         rsbac_printk(KERN_INFO "RSBAC REG decision module kproc_hide: Initializing.\n");
00087 
00088         /* clearing registration entries */
00089         memset(&entry, 0, sizeof(entry));
00090 
00091         strcpy(entry.name, "RSBAC REG kproc_hide ADF module");
00092         rsbac_printk(KERN_INFO "RSBAC REG decision module kproc_hide: REG Version: %u, Name: %s, Handle: %li\n",
00093                                                                 RSBAC_REG_VERSION, entry.name, handle);
00094 
00095         entry.handle = handle;
00096         entry.request_func = request_func;
00097         entry.switch_on = TRUE;
00098         rsbac_printk(KERN_INFO "RSBAC REG decision module kproc_hide: Registering to ADF.\n");
00099         
00100         if(rsbac_reg_register(RSBAC_REG_VERSION, entry) < 0) {
00101                 rsbac_printk(KERN_WARNING "RSBAC REG decision module sample 1: Registering failed. Unloading.\n");
00102                 return -ENOEXEC;
00103         }
00104 
00105         rsbac_printk(KERN_INFO "RSBAC REG decision module kproc_hide: Loaded.\n");
00106 
00107         return 0;
00108 }

int is_kproc ( int  pid  ) 

Definition at line 36 of file kproc_hide.c.

References NULL.

Referenced by request_func().

00037 {
00038         struct task_struct *tid_task;
00039 
00040         tid_task = find_task_by_pid(pid);
00041 
00042         if (tid_task->mm == NULL)
00043                 return 1;
00044         else
00045                 return 0;
00046 }

MODULE_AUTHOR ( "Michal Purzynski"   ) 

MODULE_DESCRIPTION ( "RSBAC REG kproc_hide 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 
) [static]

Definition at line 50 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().

00057 {  
00058 
00059         switch (request) {
00060                 case R_GET_STATUS_DATA:
00061                         switch (target) {
00062                                 case T_PROCESS:
00063                                         if (is_kproc(tid.process))
00064                                         return NOT_GRANTED;
00065                                 default:
00066                                         return DO_NOT_CARE;
00067                         }
00068                 default:
00069                         return DO_NOT_CARE;
00070         }
00071         
00072 /*
00073         if (request == R_GET_STATUS_DATA && target == T_PROCESS && is_kproc(tid.process))
00074                 return NOT_GRANTED;
00075         else
00076                 return GRANTED;
00077 */
00078 }


Variable Documentation

long handle = 9999992 [static]

Definition at line 26 of file kproc_hide.c.

Referenced by cleanup_module(), init_module(), lookup_lol_reg(), lookup_reg(), remove_lol_reg(), remove_reg(), rsbac_acl_get_tlist(), and set_attr_dev().


Generated on Wed May 16 11:54:17 2007 for RSBAC by  doxygen 1.5.1