···8888 * - exec type - which determines how the executable name and index are used8989 * - flags - which modify how the destination name is applied9090 */9191-#define AA_X_INDEX_MASK 0x03ff9191+#define AA_X_INDEX_MASK 0x00ffffff92929393-#define AA_X_TYPE_MASK 0x0c009494-#define AA_X_TYPE_SHIFT 109595-#define AA_X_NONE 0x00009696-#define AA_X_NAME 0x0400 /* use executable name px */9797-#define AA_X_TABLE 0x0800 /* use a specified name ->n# */9393+#define AA_X_TYPE_MASK 0x0c0000009494+#define AA_X_NONE 0x000000009595+#define AA_X_NAME 0x04000000 /* use executable name px */9696+#define AA_X_TABLE 0x08000000 /* use a specified name ->n# */98979999-#define AA_X_UNSAFE 0x1000100100-#define AA_X_CHILD 0x2000 /* make >AA_X_NONE apply to children */101101-#define AA_X_INHERIT 0x4000102102-#define AA_X_UNCONFINED 0x80009898+#define AA_X_UNSAFE 0x100000009999+#define AA_X_CHILD 0x20000000100100+#define AA_X_INHERIT 0x40000000101101+#define AA_X_UNCONFINED 0x80000000103102104103/* need to make conditional which ones are being set */105104struct path_cond {
+1-1
security/apparmor/include/perms.h
···7878 u32 quiet; /* set only when ~allow | deny */7979 u32 hide; /* set only when ~allow | deny */80808181- u16 xindex;8181+ u32 xindex;8282};83838484#define ALL_PERMS_MASK 0xffffffff
+4-4
security/apparmor/policy_unpack.c
···489489 int i, size;490490491491 size = unpack_array(e, NULL);492492- /* currently 4 exec bits and entries 0-3 are reserved iupcx */493493- if (size > 16 - 4)492492+ /* currently 2^24 bits entries 0-3 */493493+ if (size > (1 << 24))494494 goto fail;495495 profile->file.trans.table = kcalloc(size, sizeof(char *),496496 GFP_KERNEL);···672672}673673674674/* remap old accept table embedded permissions to separate permission table */675675-static u16 dfa_map_xindex(u16 mask)675675+static u32 dfa_map_xindex(u16 mask)676676{677677 u16 old_index = (mask >> 10) & 0xf;678678- u16 index = 0;678678+ u32 index = 0;679679680680 if (mask & 0x100)681681 index |= AA_X_UNSAFE;