enum {
AAFS_LOADDATA_ABI = 0,
AAFS_LOADDATA_REVISION,
AAFS_LOADDATA_HASH,
AAFS_LOADDATA_DATA,
AAFS_LOADDATA_COMPRESSED_SIZE,
AAFS_LOADDATA_DIR, /* must be last actual entry */
AAFS_LOADDATA_NDENTS /* count of entries */
};
enum aa_code {
AA_U8,
AA_U16,
AA_U32,
AA_U64,
AA_NAME, /* same as string except it is items name */
AA_STRING,
AA_BLOB,
AA_STRUCT,
AA_STRUCTEND,
AA_LIST,
AA_LISTEND,
AA_ARRAY,
AA_ARRAYEND,
};
/* *aa_extisthereadofthebuffercontainingtheserializedprofile.The *dataiscopiedintoakernelbufferinapparmorfsandthenhandedoffto *theunpackroutines.
*/ struct aa_ext { void *start; void *end; void *pos; /* pointer to current position in the buffer */
u32 version;
};
/* *structaa_loaddata-bufferofpolicyraw_dataset * *thereisnoloaddatarefforbeingonnslist,norareffrom *d_inode(@dentry)whengrabareffromthese,@ns->lockmustbeheld *&&__aa_get_loaddata()needstobeused,andthereturnvalue *checked,ifNULLtheloaddataisalreadybeingreapedandshouldbe *considereddead.
*/ struct aa_loaddata { struct kref count; struct list_head list; struct work_struct work; struct dentry *dents[AAFS_LOADDATA_NDENTS]; struct aa_ns *ns; char *name;
size_t size; /* the original size of the payload */
size_t compressed_size; /* the compressed size of the payload */ long revision; /* the ns policy revision this caused */ int abi; unsignedchar *hash;
/* Pointer to payload. If @compressed_size > 0, then this is the *compressedversionofthepayload,elseitistheuncompressed *version(withthesizeindicatedby@size).
*/ char *data;
};
int aa_unpack(struct aa_loaddata *udata, struct list_head *lh, constchar **ns);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.