apparmor: Initial implementation of raw policy blob compression
This adds an initial implementation of raw policy blob compression, using deflate. Compression level can be controlled via a new sysctl, "apparmor.rawdata_compression_level", which can be set to a value between 0 (no compression) and 9 (highest compression). Signed-off-by: Chris Coulson <chris.coulson@canonical.com> Signed-off-by: John Johansen <john.johansen@canonical.com>
This commit is contained in:

committed by
John Johansen

parent
582549e3fb
commit
63c16c3a76
@@ -45,6 +45,7 @@ enum {
|
||||
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 */
|
||||
};
|
||||
@@ -65,11 +66,16 @@ struct aa_loaddata {
|
||||
struct dentry *dents[AAFS_LOADDATA_NDENTS];
|
||||
struct aa_ns *ns;
|
||||
char *name;
|
||||
size_t size;
|
||||
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;
|
||||
unsigned char *hash;
|
||||
|
||||
/* Pointer to payload. If @compressed_size > 0, then this is the
|
||||
* compressed version of the payload, else it is the uncompressed
|
||||
* version (with the size indicated by @size).
|
||||
*/
|
||||
char *data;
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user