pax_getname.c File Reference

#include <rsbac/types.h>
#include <rsbac/pax_getname.h>
#include <rsbac/helpers.h>
#include <rsbac/error.h>
#include <stdio.h>
#include <string.h>

Go to the source code of this file.

Functions

char * pax_print_flags (char *string, rsbac_pax_flags_t flags)
rsbac_pax_flags_t pax_strtoflags (char *string, rsbac_pax_flags_t init_flags)


Function Documentation

char* pax_print_flags char *  string,
rsbac_pax_flags_t  flags
 

Definition at line 21 of file pax_getname.c.

References PF_PAX_EMUTRAMP, PF_PAX_MPROTECT, PF_PAX_PAGEEXEC, PF_PAX_RANDEXEC, PF_PAX_RANDMMAP, and PF_PAX_SEGMEXEC.

Referenced by get_attribute_value_name().

00022   {
00023     sprintf(string, "%c%c%c%c%c%c",
00024            flags & PF_PAX_PAGEEXEC ? 'P' : 'p',
00025            flags & PF_PAX_EMUTRAMP ? 'E' : 'e',
00026            flags & PF_PAX_MPROTECT ? 'M' : 'm',
00027            flags & PF_PAX_RANDMMAP ? 'R' : 'r',
00028            flags & PF_PAX_RANDEXEC ? 'X' : 'x',
00029            flags & PF_PAX_SEGMEXEC ? 'S' : 's');
00030     return string;
00031   }

rsbac_pax_flags_t pax_strtoflags char *  string,
rsbac_pax_flags_t  init_flags
 

Definition at line 34 of file pax_getname.c.

References PF_PAX_EMUTRAMP, PF_PAX_MPROTECT, PF_PAX_PAGEEXEC, PF_PAX_RANDEXEC, PF_PAX_RANDMMAP, PF_PAX_SEGMEXEC, and RSBAC_PAX_ALL_FLAGS.

00035   {
00036     char * p = string;
00037     rsbac_pax_flags_t add_flags = 0;
00038     rsbac_pax_flags_t remove_flags = 0;
00039 
00040     if(!p)
00041       return init_flags;
00042     while(*p)
00043       {
00044         switch(*p)
00045           {
00046               case 'P':
00047                 add_flags |= PF_PAX_PAGEEXEC;
00048                 break;
00049               case 'p':
00050                 remove_flags |= PF_PAX_PAGEEXEC;
00051                 break;
00052               case 'E':
00053                 add_flags |= PF_PAX_EMUTRAMP;
00054                 break;
00055               case 'e':
00056                 remove_flags |= PF_PAX_EMUTRAMP;
00057                 break;
00058               case 'M':
00059                 add_flags |= PF_PAX_MPROTECT;
00060                 break;
00061               case 'm':
00062                 remove_flags |= PF_PAX_MPROTECT;
00063                 break;
00064               case 'R':
00065                 add_flags |= PF_PAX_RANDMMAP;
00066                 break;
00067               case 'r':
00068                 remove_flags |= PF_PAX_RANDMMAP;
00069                 break;
00070               case 'X':
00071                 add_flags |= PF_PAX_RANDEXEC;
00072                 break;
00073               case 'x':
00074                 remove_flags |= PF_PAX_RANDEXEC;
00075                 break;
00076               case 'S':
00077                 add_flags |= PF_PAX_SEGMEXEC;
00078                 break;
00079               case 's':
00080                 remove_flags |= PF_PAX_SEGMEXEC;
00081                 break;
00082               case 'z':
00083                 remove_flags = RSBAC_PAX_ALL_FLAGS;
00084                 break;
00085               case 'a':
00086                 add_flags = RSBAC_PAX_ALL_FLAGS;
00087                 break;
00088             default:
00089               break;
00090           }
00091         p++;
00092       }
00093     return (init_flags | add_flags) & ~remove_flags;
00094   }


Generated on Sun May 21 14:31:07 2006 for RSBAC by  doxygen 1.4.2