#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 }
|
|
||||||||||||
|
|
|
||||||||||||
|
|
|
||||||||||||
|
|
|
||||||||||||
|
|
|
||||||||||||
|
|
|
||||||||||||
|
|
|
||||||||||||
|
|
|
||||||||||||
|
|
|
||||||||||||
|
|
|
||||||||||||
|
|
|
||||||||||||
|
|
1.4.2