#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_lib_version (void) |
int | rsbac_u32_compare (__u32 *a, __u32 *b) |
int | rsbac_u32_void_compare (const void *a, const void *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) |
char* devdesctostr | ( | char * | str, | |
struct rsbac_dev_desc_t | dev | |||
) |
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 }
char* get_group_name | ( | rsbac_gid_t | group, | |
char * | name | |||
) |
char* get_user_name | ( | rsbac_uid_t | user, | |
char * | name | |||
) |
char* inttostr | ( | char | [], | |
int | ||||
) |
char* longtostr | ( | char | [], | |
long | ||||
) |
int rsbac_dev_compare | ( | const void * | desc1, | |
const void * | desc2 | |||
) |
Definition at line 68 of file helpers.c.
00069 { 00070 int result; 00071 00072 result = memcmp(&((struct rsbac_dev_desc_t *)desc1)->type, 00073 &((struct rsbac_dev_desc_t *)desc2)->type, 00074 sizeof(((struct rsbac_dev_desc_t *)desc1)->type)); 00075 if (result) 00076 return result; 00077 result = memcmp(&((struct rsbac_dev_desc_t *)desc1)->major, 00078 &((struct rsbac_dev_desc_t *)desc2)->major, 00079 sizeof(((struct rsbac_dev_desc_t *)desc1)->major)); 00080 if (result) 00081 return result; 00082 return memcmp(&((struct rsbac_dev_desc_t *)desc1)->minor, 00083 &((struct rsbac_dev_desc_t *)desc2)->minor, 00084 sizeof(((struct rsbac_dev_desc_t *)desc1)->minor)); 00085 }
int rsbac_get_fullname | ( | char * | fullname, | |
rsbac_uid_t | uid | |||
) |
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 }
static int rsbac_get_gid | ( | rsbac_gid_t * | gid, | |
char * | sourcename | |||
) | [inline, static] |
Definition at line 51 of file helpers.h.
References NULL, and rsbac_get_gid_name().
00052 { 00053 return rsbac_get_gid_name(gid, NULL, sourcename); 00054 }
int rsbac_get_gid_name | ( | rsbac_gid_t * | gid, | |
char * | name, | |||
char * | sourcename | |||
) |
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 }
static int rsbac_get_uid | ( | rsbac_uid_t * | uid, | |
char * | sourcename | |||
) | [inline, static] |
Definition at line 44 of file helpers.h.
References NULL, and rsbac_get_uid_name().
00045 { 00046 return rsbac_get_uid_name(uid, NULL, sourcename); 00047 }
int rsbac_get_uid_name | ( | rsbac_uid_t * | uid, | |
char * | name, | |||
char * | sourcename | |||
) |
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 }
int rsbac_group_compare | ( | const void * | a, | |
const void * | b | |||
) |
Definition at line 58 of file helpers.c.
References rsbac_u32_compare().
00059 { 00060 return rsbac_u32_compare((__u32 *) a, (__u32 *) b); 00061 }
int rsbac_lib_version | ( | void | ) |
int rsbac_nettemp_id_compare | ( | const void * | a, | |
const void * | b | |||
) |
Definition at line 63 of file helpers.c.
References rsbac_u32_compare().
00064 { 00065 return rsbac_u32_compare((__u32 *) a, (__u32 *) b); 00066 }
int rsbac_u32_compare | ( | __u32 * | a, | |
__u32 * | b | |||
) |
Definition at line 44 of file helpers.c.
Referenced by rsbac_group_compare(), rsbac_nettemp_id_compare(), and rsbac_user_compare().
00045 { 00046 if(*a < *b) 00047 return -1; 00048 if(*a > *b) 00049 return 1; 00050 return 0; 00051 }
int rsbac_u32_void_compare | ( | const void * | a, | |
const void * | b | |||
) |
int rsbac_user_compare | ( | const void * | a, | |
const void * | b | |||
) |
Definition at line 53 of file helpers.c.
References rsbac_u32_compare().
00054 { 00055 return rsbac_u32_compare((__u32 *) a, (__u32 *) b); 00056 }
int strtodevdesc | ( | char * | str, | |
struct rsbac_dev_desc_t * | dev_p | |||
) |
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 }
__u64 strtou64acl | ( | char | [], | |
__u64 * | ||||
) |
__u64 strtou64log | ( | char | [], | |
__u64 * | ||||
) |
__u64 strtou64mac | ( | char | [], | |
__u64 * | ||||
) |
__u64 strtou64rc | ( | char | [], | |
__u64 * | ||||
) |
__u64 strtou64rcr | ( | char | [], | |
__u64 * | ||||
) |
char* u64tostracl | ( | char | [], | |
__u64 | ||||
) |
char* u64tostrlog | ( | char | [], | |
__u64 | ||||
) |
char* u64tostrmac | ( | char | [], | |
__u64 | ||||
) |
char* u64tostrrc | ( | char | [], | |
__u64 | ||||
) |
char* u64tostrrcr | ( | char | [], | |
__u64 | ||||
) |
char* ulongtostr | ( | char | [], | |
u_long | ||||
) |