mirror of
https://github.com/torvalds/linux.git
synced 2026-10-22 23:01:49 +02:00
audit: separate file and process capability storage
File capabilities need permitted and inheritable sets, an effective flag, and a root UID. Process capabilities need four full capability sets but neither a file effective flag nor a root UID. Give file capabilities their own type instead of storing both representations in audit_cap_data. This reduces each preallocated audit_names entry by 16 bytes on the tested 64-bit configurations, saving 80 bytes per audit context. The BPRM capability auxiliary object also shrinks from 144 to 112 bytes. Retain all logged fields, including file root IDs and process ambient capabilities; record formats and collection behavior are unchanged. Signed-off-by: Christian Göttsche <cgzones@googlemail.com> Signed-off-by: Paul Moore <paul@paul-moore.com>
This commit is contained in:
parent
ca12826b4a
commit
a8bdcf9445
|
|
@ -53,15 +53,18 @@ struct audit_entry {
|
|||
struct audit_krule rule;
|
||||
};
|
||||
|
||||
struct audit_file_caps {
|
||||
kernel_cap_t permitted;
|
||||
kernel_cap_t inheritable;
|
||||
unsigned int fE; /* effective bit of file cap */
|
||||
kuid_t rootid;
|
||||
};
|
||||
|
||||
struct audit_cap_data {
|
||||
kernel_cap_t permitted;
|
||||
kernel_cap_t inheritable;
|
||||
union {
|
||||
unsigned int fE; /* effective bit of file cap */
|
||||
kernel_cap_t effective; /* effective set of process */
|
||||
};
|
||||
kernel_cap_t effective;
|
||||
kernel_cap_t ambient;
|
||||
kuid_t rootid;
|
||||
};
|
||||
|
||||
/* When fs/namei.c:getname() is called, we store the pointer in name and bump
|
||||
|
|
@ -83,7 +86,7 @@ struct audit_names {
|
|||
kgid_t gid;
|
||||
dev_t rdev;
|
||||
struct lsm_prop oprop;
|
||||
struct audit_cap_data fcap;
|
||||
struct audit_file_caps fcap;
|
||||
unsigned int fcap_ver;
|
||||
unsigned char type; /* record type */
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -107,7 +107,7 @@ struct audit_aux_data_pids {
|
|||
|
||||
struct audit_aux_data_bprm_fcaps {
|
||||
struct audit_aux_data d;
|
||||
struct audit_cap_data fcap;
|
||||
struct audit_file_caps fcap;
|
||||
unsigned int fcap_ver;
|
||||
struct audit_cap_data old_pcap;
|
||||
struct audit_cap_data new_pcap;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user