#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 598 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. 00599 { 00600 if(RSBAC_IS_ZERO_DEV_DESC(dev)) 00601 { 00602 sprintf(str, ":DEFAULT:"); 00603 return str; 00604 } 00605 switch(dev.type) 00606 { 00607 case D_block: 00608 case D_char: 00609 sprintf(str, "%c%u:%u", 'b' + dev.type, dev.major, dev.minor); 00610 break; 00611 case D_block_major: 00612 case D_char_major: 00613 sprintf(str, "%c%u", 00614 'b' + dev.type - (D_block_major - D_block), 00615 dev.major); 00616 break; 00617 default: 00618 sprintf(str, "invalid!"); 00619 } 00620 return str; 00621 }
|
|
Definition at line 308 of file helpers.c. 00309 { 00310 struct group * group_info_p; 00311 00312 if((group_info_p = getgrgid(group))) 00313 { 00314 strcpy(name, group_info_p->gr_name); 00315 } 00316 else 00317 { 00318 sprintf(name, "%u", group); 00319 } 00320 return name; 00321 }
|
|
Definition at line 293 of file helpers.c. 00294 { 00295 struct passwd * user_info_p; 00296 00297 if((user_info_p = getpwuid(user))) 00298 { 00299 strcpy(name, user_info_p->pw_name); 00300 } 00301 else 00302 { 00303 sprintf(name, "%u", user); 00304 } 00305 return name; 00306 }
|
|
|
|
|
|
Definition at line 65 of file helpers.c. References rsbac_dev_desc_t::major, rsbac_dev_desc_t::minor, and rsbac_dev_desc_t::type. 00067 { 00068 const struct rsbac_dev_desc_t * i_desc1 = desc1; 00069 const struct rsbac_dev_desc_t * i_desc2 = desc2; 00070 int result; 00071 00072 result = memcmp(&i_desc1->type, 00073 &i_desc2->type, 00074 sizeof(i_desc1->type)); 00075 if(result) 00076 return result; 00077 result = memcmp(&i_desc1->major, 00078 &i_desc2->major, 00079 sizeof(i_desc1->major)); 00080 if(result) 00081 return result; 00082 return memcmp(&i_desc1->minor, 00083 &i_desc2->minor, 00084 sizeof(i_desc1->minor)); 00085 }
|
|
Definition at line 275 of file helpers.c. References RSBAC_EINVALIDPOINTER. 00276 { 00277 struct passwd * user_info_p; 00278 rsbac_uid_t uid_i; 00279 00280 if(!fullname) 00281 return -RSBAC_EINVALIDPOINTER; 00282 if(!(user_info_p = getpwuid(uid))) 00283 { 00284 sprintf(fullname, "%u", uid); 00285 } 00286 else 00287 { 00288 strcpy(fullname, user_info_p->pw_gecos); 00289 } 00290 return 0; 00291 }
|
|
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 323 of file helpers.c. References RSBAC_EINVALIDVALUE. Referenced by rsbac_get_gid(). 00324 { 00325 struct group * group_info_p; 00326 rsbac_gid_t gid_i; 00327 00328 if(!(group_info_p = getgrnam(sourcename))) 00329 { 00330 gid_i = strtoul(sourcename,0,10); 00331 if( !gid_i 00332 && strcmp("0", sourcename) 00333 ) 00334 { 00335 return -RSBAC_EINVALIDVALUE; 00336 } 00337 if(name) 00338 { 00339 if((group_info_p = getgrgid(gid_i))) 00340 strcpy(name, group_info_p->gr_name); 00341 else 00342 sprintf(name, "%u", gid_i); 00343 } 00344 } 00345 else 00346 { 00347 gid_i = group_info_p->gr_gid; 00348 if(name) 00349 strcpy(name, group_info_p->gr_name); 00350 } 00351 if(gid) 00352 *gid = gid_i; 00353 return 0; 00354 }
|
|
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 242 of file helpers.c. References RSBAC_EINVALIDVALUE. Referenced by rsbac_get_uid(). 00243 { 00244 struct passwd * user_info_p; 00245 rsbac_uid_t uid_i; 00246 00247 if(!(user_info_p = getpwnam(sourcename))) 00248 { 00249 uid_i = strtoul(sourcename,0,10); 00250 if( !uid_i 00251 && strcmp("0", sourcename) 00252 ) 00253 { 00254 return -RSBAC_EINVALIDVALUE; 00255 } 00256 if(name) 00257 { 00258 if((user_info_p = getpwuid(uid_i))) 00259 strcpy(name, user_info_p->pw_name); 00260 else 00261 sprintf(name, "%u", uid_i); 00262 } 00263 } 00264 else 00265 { 00266 uid_i = user_info_p->pw_uid; 00267 if(name) 00268 strcpy(name, user_info_p->pw_name); 00269 } 00270 if(uid) 00271 *uid = uid_i; 00272 return 0; 00273 }
|
|
Definition at line 55 of file helpers.c. References rsbac_u32_compare(). 00056 { 00057 return rsbac_u32_compare((__u32 *) a, (__u32 *) b); 00058 }
|
|
Definition at line 60 of file helpers.c. References rsbac_u32_compare(). 00061 { 00062 return rsbac_u32_compare((__u32 *) a, (__u32 *) b); 00063 }
|
|
Definition at line 41 of file helpers.c. Referenced by rsbac_group_compare(), rsbac_nettemp_id_compare(), and rsbac_user_compare(). 00042 { 00043 if(*a < *b) 00044 return -1; 00045 if(*a > *b) 00046 return 1; 00047 return 0; 00048 }
|
|
Definition at line 50 of file helpers.c. References rsbac_u32_compare(). 00051 { 00052 return rsbac_u32_compare((__u32 *) a, (__u32 *) b); 00053 }
|
|
Definition at line 553 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. 00554 { 00555 char * p; 00556 char * c; 00557 00558 if(!str) 00559 return -RSBAC_EINVALIDVALUE; 00560 if(!strcmp(str, ":DEFAULT:")) 00561 { 00562 *dev_p = RSBAC_ZERO_DEV_DESC; 00563 return 0; 00564 } 00565 p = str; 00566 c = strchr(p,':'); 00567 switch(*p) 00568 { 00569 case 'b': 00570 case 'B': 00571 if(c) 00572 dev_p->type = D_block; 00573 else 00574 dev_p->type = D_block_major; 00575 break; 00576 case 'c': 00577 case 'C': 00578 if(c) 00579 dev_p->type = D_char; 00580 else 00581 dev_p->type = D_char_major; 00582 break; 00583 default: 00584 return -RSBAC_EINVALIDTARGET; 00585 } 00586 p++; 00587 dev_p->major = strtoul(p,0,0); 00588 if(c) 00589 { 00590 c++; 00591 dev_p->minor = strtoul(c,0,0); 00592 } 00593 else 00594 dev_p->minor = 0; 00595 return 0; 00596 }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|