diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-10-18 13:26:10 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-10-18 13:26:10 -0400 |
commit | e56d9fccb1c78283d7c163bb354be7cbbc93d9fb (patch) | |
tree | 6c31ff5a5ddb13e32ee19cbe5238e36042588de8 | |
parent | 0e6e58f941176033fd9a224b39527b12f9cbb05e (diff) | |
parent | 9b32011acdc4428474b7cba865f713a11b9b9bd3 (diff) |
Merge branch 'for-linus2' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security
Pull selinux fix from James Morris:
"Fix for a list corruption bug in the SELinux code"
* 'for-linus2' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
selinux: fix inode security list corruption
-rw-r--r-- | security/selinux/hooks.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c index 8426a2aa8dce..e66314138b38 100644 --- a/security/selinux/hooks.c +++ b/security/selinux/hooks.c | |||
@@ -481,6 +481,7 @@ next_inode: | |||
481 | list_entry(sbsec->isec_head.next, | 481 | list_entry(sbsec->isec_head.next, |
482 | struct inode_security_struct, list); | 482 | struct inode_security_struct, list); |
483 | struct inode *inode = isec->inode; | 483 | struct inode *inode = isec->inode; |
484 | list_del_init(&isec->list); | ||
484 | spin_unlock(&sbsec->isec_lock); | 485 | spin_unlock(&sbsec->isec_lock); |
485 | inode = igrab(inode); | 486 | inode = igrab(inode); |
486 | if (inode) { | 487 | if (inode) { |
@@ -489,7 +490,6 @@ next_inode: | |||
489 | iput(inode); | 490 | iput(inode); |
490 | } | 491 | } |
491 | spin_lock(&sbsec->isec_lock); | 492 | spin_lock(&sbsec->isec_lock); |
492 | list_del_init(&isec->list); | ||
493 | goto next_inode; | 493 | goto next_inode; |
494 | } | 494 | } |
495 | spin_unlock(&sbsec->isec_lock); | 495 | spin_unlock(&sbsec->isec_lock); |