NetLabel: add missing rcu_dereference() calls in the LSM domain mapping hash table
Subsystems (3)
PATCH 1/1 NetLabel: add missing rcu_dereference() calls in the LSM domain mapping hash table
h
Content-Disposition: inline; filename=netlabel-rcu_deref_fix
The LSM domain mapping head table pointer was not being referenced via the RCU safe dereferencing function, rcu_dereference(). This patch adds those missing calls to the NetLabel code.
This has been tested using recent linux-2.6 git kernels with no visible regressions.
--- net/netlabel/netlabel_domainhash.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-)
net/netlabel/netlabel_domainhash.c +6 -4
@@ -126,7 +126,9 @@ static struct netlbl_dom_map *netlbl_domif (domain !=NULL ) { bkt =netlbl_domhsh_hash (domain); -list_for_each_entry_rcu (iter, &netlbl_domhsh->tbl[bkt], list) +list_for_each_entry_rcu (iter, + &rcu_dereference (netlbl_domhsh)->tbl[bkt], + list)if (iter->valid &&strcmp (iter->domain, domain) ==0 )return iter; }
@@ -227,7 +229,7 @@ int netlbl_domhsh_add(struct netlbl_dom_spin_lock (&netlbl_domhsh_lock);if (netlbl_domhsh_search (entry->domain,0 ) ==NULL )list_add_tail_rcu (&entry->list, - &netlbl_domhsh->tbl[bkt]); + &rcu_dereference (netlbl_domhsh)->tbl[bkt]);else ret_val = -EEXIST ;spin_unlock (&netlbl_domhsh_lock);
@@ -423,8 +425,8 @@ int netlbl_domhsh_walk(u32 *skip_bkt, iter_bkt <rcu_dereference (netlbl_domhsh)->size; iter_bkt++, chain_cnt = 0) {list_for_each_entry_rcu (iter_entry, - &netlbl_domhsh->tbl[iter_bkt], - list) + &rcu_dereference (netlbl_domhsh)->tbl[iter_bkt], + list)if (iter_entry->valid) {if (chain_cnt++ < *skip_chain)continue ;
Signature · 2 lines
paul moore linux security @ hp
David Miller
maintainerFrom: "Paul Moore" <[email protected]>
Date: Tue, 07 Aug 2007 16:54:50 -0400
Quoted 8 lines
The LSM domain mapping head table pointer was not being referenced via the RCU safe dereferencing function,
rcu_dereference(). This patch adds those missing calls to the NetLabel code.This has been tested using recent linux-2.6 git kernels with no visible regressions.
Signed-off-by Paul Moore <[email protected]>
Patch applied, thanks Paul.