On Saturday, August 08, 2015 10:20:25 AM Richard Guy Briggs wrote: > diff --git a/kernel/audit_watch.c b/kernel/audit_watch.c > index 1255dbf..656c7e9 100644 > --- a/kernel/audit_watch.c > +++ b/kernel/audit_watch.c > @@ -540,8 +540,14 @@ int audit_dupe_exe(struct audit_krule *new, struct > audit_krule *old) > > int audit_exe_compare(struct task_struct *tsk, struct audit_fsnotify_mark > *mark) { > - unsigned long ino = tsk->mm->exe_file->f_inode->i_ino; > - dev_t dev = tsk->mm->exe_file->f_inode->i_sb->s_dev; > - > + struct file *exe_file; > + unsigned long ino; > + dev_t dev; > + > + rcu_read_lock(); > + exe_file = rcu_dereference(tsk->mm->exe_file);
This line is triggering a sparse error on my system: # make C=1 M=kernel ... CHECK kernel/audit_watch.c kernel/audit_watch.c:548:20: error: incompatible types in comparison expression (different address spaces) For the record I'm using gcc v4.9.3 and sparse v0.5.0. > + ino = exe_file->f_inode->i_ino; > + dev = exe_file->f_inode->i_sb->s_dev; > + rcu_read_unlock(); > return audit_mark_compare(mark, ino, dev); > } -- paul moore security @ redhat -- Linux-audit mailing list Linux-audit@redhat.com https://www.redhat.com/mailman/listinfo/linux-audit