sanitize audit_mq_getsetattr()
PATCH 5/15 sanitize audit_mq_getsetattr()
* get rid of allocations
* make it return void
* don't duplicate parts of audit_dummy_context()
Signed-off-by Al Viro <[email protected]>
--- include/linux/audit.h | 9 +++---- ipc/mqueue.c | 6 +---- kernel/auditsc.c | 54 +++++++++++++++--------------------------------- 3 files changed, 22 insertions(+), 47 deletions(-)
include/linux/audit.h +4 -5
@@ -452,7 +452,7 @@ extern int __audit_mq_open(int oflag, mode_t mode, struct mq_attr __user *u_attrextern int __audit_mq_timedsend (mqd_t mqdes,size_t msg_len,unsigned int msg_prio,const struct timespec __user *u_abs_timeout);extern int __audit_mq_timedreceive (mqd_t mqdes,size_t msg_len,unsigned int __user *u_msg_prio,const struct timespec __user *u_abs_timeout);extern int __audit_mq_notify (mqd_t mqdes,const struct sigevent __user *u_notification); -extern int __audit_mq_getsetattr (mqd_t mqdes,struct mq_attr *mqstat); +extern void __audit_mq_getsetattr (mqd_t mqdes,struct mq_attr *mqstat);static inline void audit_ipc_obj (struct kern_ipc_perm *ipcp) {
@@ -494,11 +494,10 @@ static inline int audit_mq_notify(mqd_t mqdes, const struct sigevent __user *u_nreturn __audit_mq_notify (mqdes, u_notification);return 0 ; } -static inline int audit_mq_getsetattr (mqd_t mqdes,struct mq_attr *mqstat) +static inline void audit_mq_getsetattr (mqd_t mqdes,struct mq_attr *mqstat) {if (unlikely (!audit_dummy_context ())) -return __audit_mq_getsetattr (mqdes, mqstat); -return 0 ; +__audit_mq_getsetattr (mqdes, mqstat); }extern int audit_n_rules;extern int audit_signals;
@@ -531,7 +530,7 @@ extern int audit_signals;#define audit_mq_timedsend (d,l,p,t) ({ 0; })#define audit_mq_timedreceive (d,l,p,t) ({ 0; })#define audit_mq_notify (d,n) ({ 0; }) -#define audit_mq_getsetattr (d,s) ({ 0; }) +#define audit_mq_getsetattr (d,s) ((void)0)#define audit_ptrace (t) ((void)0)#define audit_n_rules 0#define audit_signals 0
ipc/mqueue.c +1 -5
@@ -1147,11 +1147,7 @@ asmlinkage long sys_mq_getsetattr(mqd_t mqdes, omqstat = info->attr; omqstat.mq_flags = filp->f_flags &O_NONBLOCK ;if (u_mqstat) { - ret =audit_mq_getsetattr (mqdes, &mqstat); -if (ret !=0 ) { -spin_unlock (&info->lock); - goto out_fput; - } +audit_mq_getsetattr (mqdes, &mqstat);if (mqstat.mq_flags &O_NONBLOCK ) filp->f_flags |=O_NONBLOCK ;else
kernel/auditsc.c +17 -37
87 lines not on this page · raw message
Signature · 1 line
1.5.6.5
Quoted 6 lines · Al Viro
* get rid of allocations
* make it return void
* don't duplicate parts ofaudit_dummy_context()Signed-off-by Al Viro <[email protected]>
Reviewed-by James Morris <[email protected]>
Signature · 2 lines
James Morris <[email protected]>