diff options
author | Jeff Vander Stoep <jeffv@google.com> | 2015-04-20 17:45:42 -0700 |
---|---|---|
committer | Ziyan <jaraidaniel@gmail.com> | 2016-03-11 16:02:33 +0100 |
commit | fad1cbb7d9b78c6805c14ef66c79523b12e3a338 (patch) | |
tree | fc7cf741cbae952bec8e722d6ab332f0ba3703b6 /security | |
parent | 3a4a52ae4659a52956ef65eff3ab9491e1b448cf (diff) | |
download | kernel_samsung_espresso10-fad1cbb7d9b78c6805c14ef66c79523b12e3a338.zip kernel_samsung_espresso10-fad1cbb7d9b78c6805c14ef66c79523b12e3a338.tar.gz kernel_samsung_espresso10-fad1cbb7d9b78c6805c14ef66c79523b12e3a338.tar.bz2 |
SELinux: use deletion-safe iterator to free list
This code is not exercised by policy version 26, but will be upon
upgrade to policy version 30.
Bug: 18087110
Change-Id: I07c6f34607713294a6a12c43a64d9936f0602200
Signed-off-by: Jeff Vander Stoep <jeffv@google.com>
Diffstat (limited to 'security')
-rw-r--r-- | security/selinux/avc.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/security/selinux/avc.c b/security/selinux/avc.c index 838f847..ac20087 100644 --- a/security/selinux/avc.c +++ b/security/selinux/avc.c @@ -306,13 +306,15 @@ static void avc_operation_decision_free( static void avc_operation_free(struct avc_operation_node *ops_node) { - struct avc_operation_decision_node *od_node; + struct avc_operation_decision_node *od_node, *tmp; if (!ops_node) return; - list_for_each_entry(od_node, &ops_node->od_head, od_list) + list_for_each_entry_safe(od_node, tmp, &ops_node->od_head, od_list) { + list_del(&od_node->od_list); avc_operation_decision_free(od_node); + } kmem_cache_free(avc_operation_node_cachep, ops_node); } |