Commit 9d0633cfedde484d30eef869f749c04709ab3e42

Authored by John Johansen
Committed by Linus Torvalds
1 parent 1e8123fded

Remove redundant check from proc_sys_setattr()

notify_change() already calls security_inode_setattr() before
calling iop->setattr.

Alan sayeth

  This is a behaviour change on all of these and limits some behaviour of
  existing established security modules

  When inode_change_ok is called it has side effects.  This includes
  clearing the SGID bit on attribute changes caused by chmod.  If you make
  this change the results of some rulesets may be different before or after
  the change is made.

  I'm not saying the change is wrong but it does change behaviour so that
  needs looking at closely (ditto all other attribute twiddles)

Signed-off-by: Steve Beattie <sbeattie@suse.de>
Signed-off-by: Andreas Gruenbacher <agruen@suse.de>
Signed-off-by: John Johansen <jjohansen@suse.de>
Acked-by: Stephen Smalley <sds@tycho.nsa.gov>
Cc: James Morris <jmorris@namei.org>
Cc: Chris Wright <chrisw@sous-sol.org>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

Showing 1 changed file with 2 additions and 5 deletions Side-by-side Diff

fs/proc/proc_sysctl.c
... ... @@ -429,11 +429,8 @@
429 429 return -EPERM;
430 430  
431 431 error = inode_change_ok(inode, attr);
432   - if (!error) {
433   - error = security_inode_setattr(dentry, attr);
434   - if (!error)
435   - error = inode_setattr(inode, attr);
436   - }
  432 + if (!error)
  433 + error = inode_setattr(inode, attr);
437 434  
438 435 return error;
439 436 }