#include <linux/types.h>
#include <rsbac/types.h>
Go to the source code of this file.
Functions | |
char * | inttostr (char[], int) |
char * | ulongtostr (char[], u_long) |
char * | u64tostrmac (char[], __u64) |
int | rsbac_u32_compare (__u32 *a, __u32 *b) |
int | rsbac_user_compare (const void *a, const void *b) |
int | rsbac_group_compare (const void *a, const void *b) |
int | rsbac_nettemp_id_compare (const void *a, const void *b) |
int | rsbac_dev_compare (const void *desc1, const void *desc2) |
char * | get_user_name (rsbac_uid_t user, char *name) |
char * | get_group_name (rsbac_gid_t group, char *name) |
int | rsbac_get_uid_name (rsbac_uid_t *uid, char *name, char *sourcename) |
int | rsbac_get_fullname (char *fullname, rsbac_uid_t uid) |
static int | rsbac_get_uid (rsbac_uid_t *uid, char *sourcename) |
int | rsbac_get_gid_name (rsbac_gid_t *gid, char *name, char *sourcename) |
static int | rsbac_get_gid (rsbac_gid_t *gid, char *sourcename) |
char * | u64tostrlog (char[], __u64) |
__u64 | strtou64log (char[], __u64 *) |
__u64 | strtou64mac (char[], __u64 *) |
char * | u64tostrrc (char[], __u64) |
__u64 | strtou64rc (char[], __u64 *) |
char * | u64tostrrcr (char[], __u64) |
__u64 | strtou64rcr (char[], __u64 *) |
__u64 | strtou64acl (char[], __u64 *) |
char * | devdesctostr (char *str, struct rsbac_dev_desc_t dev) |
int | strtodevdesc (char *str, struct rsbac_dev_desc_t *dev_p) |
char * | u64tostracl (char[], __u64) |
char * | longtostr (char[], long) |
|
Definition at line 595 of file helpers.c. References D_block, D_block_major, D_char, D_char_major, rsbac_dev_desc_t::major, rsbac_dev_desc_t::minor, RSBAC_IS_ZERO_DEV_DESC, and rsbac_dev_desc_t::type. 00596 { 00597 if(RSBAC_IS_ZERO_DEV_DESC(dev)) 00598 { 00599 sprintf(str, ":DEFAULT:"); 00600 return str; 00601 } 00602 switch(dev.type) 00603 { 00604 case D_block: 00605 case D_char: 00606 sprintf(str, "%c%u:%u", 'b' + dev.type, dev.major, dev.minor); 00607 break; 00608 case D_block_major: 00609 case D_char_major: 00610 sprintf(str, "%c%u", 00611 'b' + dev.type - (D_block_major - D_block), 00612 dev.major); 00613 break; 00614 default: 00615 sprintf(str, "invalid!"); 00616 } 00617 return str; 00618 }
|
|
Definition at line 305 of file helpers.c. 00306 { 00307 struct group * group_info_p; 00308 00309 if((group_info_p = getgrgid(group))) 00310 { 00311 strcpy(name, group_info_p->gr_name); 00312 } 00313 else 00314 { 00315 sprintf(name, "%u", group); 00316 } 00317 return name; 00318 }
|
|
Definition at line 290 of file helpers.c. 00291 { 00292 struct passwd * user_info_p; 00293 00294 if((user_info_p = getpwuid(user))) 00295 { 00296 strcpy(name, user_info_p->pw_name); 00297 } 00298 else 00299 { 00300 sprintf(name, "%u", user); 00301 } 00302 return name; 00303 }
|
|
|
|
|
|
Definition at line 62 of file helpers.c. References rsbac_dev_desc_t::major, rsbac_dev_desc_t::minor, and rsbac_dev_desc_t::type. 00064 { 00065 struct rsbac_dev_desc_t * i_desc1 = desc1; 00066 struct rsbac_dev_desc_t * i_desc2 = desc2; 00067 int result; 00068 00069 result = memcmp(&i_desc1->type, 00070 &i_desc2->type, 00071 sizeof(i_desc1->type)); 00072 if(result) 00073 return result; 00074 result = memcmp(&i_desc1->major, 00075 &i_desc2->major, 00076 sizeof(i_desc1->major)); 00077 if(result) 00078 return result; 00079 return memcmp(&i_desc1->minor, 00080 &i_desc2->minor, 00081 sizeof(i_desc1->minor)); 00082 }
|
|
Definition at line 272 of file helpers.c. References RSBAC_EINVALIDPOINTER. 00273 { 00274 struct passwd * user_info_p; 00275 rsbac_uid_t uid_i; 00276 00277 if(!fullname) 00278 return -RSBAC_EINVALIDPOINTER; 00279 if(!(user_info_p = getpwuid(uid))) 00280 { 00281 sprintf(fullname, "%u", uid); 00282 } 00283 else 00284 { 00285 strcpy(fullname, user_info_p->pw_gecos); 00286 } 00287 return 0; 00288 }
|
|
Definition at line 46 of file helpers.h. References NULL, and rsbac_get_gid_name(). 00047 { 00048 return rsbac_get_gid_name(gid, NULL, sourcename); 00049 }
|
|
Definition at line 320 of file helpers.c. References RSBAC_EINVALIDVALUE. Referenced by rsbac_get_gid(). 00321 { 00322 struct group * group_info_p; 00323 rsbac_gid_t gid_i; 00324 00325 if(!(group_info_p = getgrnam(sourcename))) 00326 { 00327 gid_i = strtoul(sourcename,0,10); 00328 if( !gid_i 00329 && strcmp("0", sourcename) 00330 ) 00331 { 00332 return -RSBAC_EINVALIDVALUE; 00333 } 00334 if(name) 00335 { 00336 if((group_info_p = getgrgid(gid_i))) 00337 strcpy(name, group_info_p->gr_name); 00338 else 00339 sprintf(name, "%u", gid_i); 00340 } 00341 } 00342 else 00343 { 00344 gid_i = group_info_p->gr_gid; 00345 if(name) 00346 strcpy(name, group_info_p->gr_name); 00347 } 00348 if(gid) 00349 *gid = gid_i; 00350 return 0; 00351 }
|
|
Definition at line 39 of file helpers.h. References NULL, and rsbac_get_uid_name(). 00040 { 00041 return rsbac_get_uid_name(uid, NULL, sourcename); 00042 }
|
|
Definition at line 239 of file helpers.c. References RSBAC_EINVALIDVALUE. Referenced by rsbac_get_uid(). 00240 { 00241 struct passwd * user_info_p; 00242 rsbac_uid_t uid_i; 00243 00244 if(!(user_info_p = getpwnam(sourcename))) 00245 { 00246 uid_i = strtoul(sourcename,0,10); 00247 if( !uid_i 00248 && strcmp("0", sourcename) 00249 ) 00250 { 00251 return -RSBAC_EINVALIDVALUE; 00252 } 00253 if(name) 00254 { 00255 if((user_info_p = getpwuid(uid_i))) 00256 strcpy(name, user_info_p->pw_name); 00257 else 00258 sprintf(name, "%u", uid_i); 00259 } 00260 } 00261 else 00262 { 00263 uid_i = user_info_p->pw_uid; 00264 if(name) 00265 strcpy(name, user_info_p->pw_name); 00266 } 00267 if(uid) 00268 *uid = uid_i; 00269 return 0; 00270 }
|
|
Definition at line 52 of file helpers.c. References rsbac_u32_compare(). 00053 { 00054 return rsbac_u32_compare((__u32 *) a, (__u32 *) b); 00055 }
|
|
Definition at line 57 of file helpers.c. References rsbac_u32_compare(). 00058 { 00059 return rsbac_u32_compare((__u32 *) a, (__u32 *) b); 00060 }
|
|
Definition at line 38 of file helpers.c. Referenced by rsbac_group_compare(), rsbac_nettemp_id_compare(), and rsbac_user_compare(). 00039 { 00040 if(*a < *b) 00041 return -1; 00042 if(*a > *b) 00043 return 1; 00044 return 0; 00045 }
|
|
Definition at line 47 of file helpers.c. References rsbac_u32_compare(). 00048 { 00049 return rsbac_u32_compare((__u32 *) a, (__u32 *) b); 00050 }
|
|
Definition at line 550 of file helpers.c. References D_block, D_block_major, D_char, D_char_major, rsbac_dev_desc_t::major, rsbac_dev_desc_t::minor, RSBAC_EINVALIDTARGET, RSBAC_EINVALIDVALUE, RSBAC_ZERO_DEV_DESC, and rsbac_dev_desc_t::type. 00551 { 00552 char * p; 00553 char * c; 00554 00555 if(!str) 00556 return -RSBAC_EINVALIDVALUE; 00557 if(!strcmp(str, ":DEFAULT:")) 00558 { 00559 *dev_p = RSBAC_ZERO_DEV_DESC; 00560 return 0; 00561 } 00562 p = str; 00563 c = strchr(p,':'); 00564 switch(*p) 00565 { 00566 case 'b': 00567 case 'B': 00568 if(c) 00569 dev_p->type = D_block; 00570 else 00571 dev_p->type = D_block_major; 00572 break; 00573 case 'c': 00574 case 'C': 00575 if(c) 00576 dev_p->type = D_char; 00577 else 00578 dev_p->type = D_char_major; 00579 break; 00580 default: 00581 return -RSBAC_EINVALIDTARGET; 00582 } 00583 p++; 00584 dev_p->major = strtoul(p,0,0); 00585 if(c) 00586 { 00587 c++; 00588 dev_p->minor = strtoul(c,0,0); 00589 } 00590 else 00591 dev_p->minor = 0; 00592 return 0; 00593 }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|