netfilter: xt_qtaguid: fix error exit that would keep a spinlock.
qtudev_open() could return with a uid_tag_data_tree_lock held when an kzalloc(..., GFP_ATOMIC) would fail. Very unlikely to get triggered AND survive the mayhem of running out of mem. Signed-off-by: JP Abgrall <jpa@google.com>
This commit is contained in:
parent
712fffff99
commit
839c250642
1 changed files with 2 additions and 2 deletions
|
@ -2752,7 +2752,7 @@ static int qtudev_open(struct inode *inode, struct file *file)
|
|||
utd_entry = get_uid_data(current_fsuid(), &utd_entry_found);
|
||||
if (IS_ERR_OR_NULL(utd_entry)) {
|
||||
res = PTR_ERR(utd_entry);
|
||||
goto err;
|
||||
goto err_unlock;
|
||||
}
|
||||
|
||||
/* Look for existing PID based proc_data */
|
||||
|
@ -2794,8 +2794,8 @@ err_unlock_free_utd:
|
|||
rb_erase(&utd_entry->node, &uid_tag_data_tree);
|
||||
kfree(utd_entry);
|
||||
}
|
||||
err_unlock:
|
||||
spin_unlock_bh(&uid_tag_data_tree_lock);
|
||||
err:
|
||||
return res;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue