audit: restore AUDIT_LOGINUID unset ABI
A regression was caused by commit780a7654ce
: audit: Make testing for a valid loginuid explicit. (which in turn attempted to fix a regression caused bye1760bd
) When audit_krule_to_data() fills in the rules to get a listing, there was a missing clause to convert back from AUDIT_LOGINUID_SET to AUDIT_LOGINUID. This broke userspace by not returning the same information that was sent and expected. The rule: auditctl -a exit,never -F auid=-1 gives: auditctl -l LIST_RULES: exit,never f24=0 syscall=all when it should give: LIST_RULES: exit,never auid=-1 (0xffffffff) syscall=all Tag it so that it is reported the same way it was set. Create a new private flags audit_krule field (pflags) to store it that won't interact with the public one from the API. Cc: stable@vger.kernel.org # v3.10-rc1+ Signed-off-by: Richard Guy Briggs <rgb@redhat.com> Signed-off-by: Paul Moore <pmoore@redhat.com>
This commit is contained in:

committed by
Paul Moore

parent
4a92843601
commit
041d7b98ff
@@ -47,6 +47,7 @@ struct sk_buff;
|
||||
|
||||
struct audit_krule {
|
||||
int vers_ops;
|
||||
u32 pflags;
|
||||
u32 flags;
|
||||
u32 listnr;
|
||||
u32 action;
|
||||
@@ -64,6 +65,9 @@ struct audit_krule {
|
||||
u64 prio;
|
||||
};
|
||||
|
||||
/* Flag to indicate legacy AUDIT_LOGINUID unset usage */
|
||||
#define AUDIT_LOGINUID_LEGACY 0x1
|
||||
|
||||
struct audit_field {
|
||||
u32 type;
|
||||
union {
|
||||
|
Reference in New Issue
Block a user