mirror of
https://github.com/torvalds/linux
synced 2024-09-06 09:51:23 +00:00
[PATCH] validate rule fields' types
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
f368c07d72
commit
0a73dccc4f
|
@ -348,17 +348,31 @@ static struct audit_entry *audit_rule_to_entry(struct audit_rule *rule)
|
|||
f->val = rule->values[i];
|
||||
|
||||
err = -EINVAL;
|
||||
if (f->type & AUDIT_UNUSED_BITS)
|
||||
goto exit_free;
|
||||
|
||||
switch(f->type) {
|
||||
case AUDIT_SE_USER:
|
||||
case AUDIT_SE_ROLE:
|
||||
case AUDIT_SE_TYPE:
|
||||
case AUDIT_SE_SEN:
|
||||
case AUDIT_SE_CLR:
|
||||
case AUDIT_WATCH:
|
||||
default:
|
||||
goto exit_free;
|
||||
case AUDIT_PID:
|
||||
case AUDIT_UID:
|
||||
case AUDIT_EUID:
|
||||
case AUDIT_SUID:
|
||||
case AUDIT_FSUID:
|
||||
case AUDIT_GID:
|
||||
case AUDIT_EGID:
|
||||
case AUDIT_SGID:
|
||||
case AUDIT_FSGID:
|
||||
case AUDIT_LOGINUID:
|
||||
case AUDIT_PERS:
|
||||
case AUDIT_ARCH:
|
||||
case AUDIT_MSGTYPE:
|
||||
case AUDIT_DEVMAJOR:
|
||||
case AUDIT_DEVMINOR:
|
||||
case AUDIT_EXIT:
|
||||
case AUDIT_SUCCESS:
|
||||
case AUDIT_ARG0:
|
||||
case AUDIT_ARG1:
|
||||
case AUDIT_ARG2:
|
||||
case AUDIT_ARG3:
|
||||
break;
|
||||
case AUDIT_INODE:
|
||||
err = audit_to_inode(&entry->rule, f);
|
||||
if (err)
|
||||
|
@ -432,6 +446,29 @@ static struct audit_entry *audit_data_to_entry(struct audit_rule_data *data,
|
|||
f->se_str = NULL;
|
||||
f->se_rule = NULL;
|
||||
switch(f->type) {
|
||||
case AUDIT_PID:
|
||||
case AUDIT_UID:
|
||||
case AUDIT_EUID:
|
||||
case AUDIT_SUID:
|
||||
case AUDIT_FSUID:
|
||||
case AUDIT_GID:
|
||||
case AUDIT_EGID:
|
||||
case AUDIT_SGID:
|
||||
case AUDIT_FSGID:
|
||||
case AUDIT_LOGINUID:
|
||||
case AUDIT_PERS:
|
||||
case AUDIT_ARCH:
|
||||
case AUDIT_MSGTYPE:
|
||||
case AUDIT_PPID:
|
||||
case AUDIT_DEVMAJOR:
|
||||
case AUDIT_DEVMINOR:
|
||||
case AUDIT_EXIT:
|
||||
case AUDIT_SUCCESS:
|
||||
case AUDIT_ARG0:
|
||||
case AUDIT_ARG1:
|
||||
case AUDIT_ARG2:
|
||||
case AUDIT_ARG3:
|
||||
break;
|
||||
case AUDIT_SE_USER:
|
||||
case AUDIT_SE_ROLE:
|
||||
case AUDIT_SE_TYPE:
|
||||
|
@ -474,6 +511,8 @@ static struct audit_entry *audit_data_to_entry(struct audit_rule_data *data,
|
|||
if (err)
|
||||
goto exit_free;
|
||||
break;
|
||||
default:
|
||||
goto exit_free;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue