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