dccp: Fix possible memleak in dccp_init and dccp_fini
There are some memory leaks in dccp_init() and dccp_fini().
In dccp_fini() and the error handling path in dccp_init(), free lhash2
is missing. Add inet_hashinfo2_free_mod() to do it.
If inet_hashinfo2_init_mod() failed in dccp_init(),
percpu_counter_destroy() should be called to destroy dccp_orphan_count.
It need to goto out_free_percpu when inet_hashinfo2_init_mod() failed.
Fixes: c92c81df93
("net: dccp: fix kernel crash on module load")
Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: Wang Hai <wanghai38@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
976ee3b211
commit
c96b6acc8f
@@ -185,6 +185,12 @@ static inline spinlock_t *inet_ehash_lockp(
|
||||
|
||||
int inet_ehash_locks_alloc(struct inet_hashinfo *hashinfo);
|
||||
|
||||
static inline void inet_hashinfo2_free_mod(struct inet_hashinfo *h)
|
||||
{
|
||||
kfree(h->lhash2);
|
||||
h->lhash2 = NULL;
|
||||
}
|
||||
|
||||
static inline void inet_ehash_locks_free(struct inet_hashinfo *hashinfo)
|
||||
{
|
||||
kvfree(hashinfo->ehash_locks);
|
||||
|
Reference in New Issue
Block a user