: Potential ax25_uid_assoc-s leaks on module unload.
Subsystems (2)
PATCH 1/1 : Potential ax25_uid_assoc-s leaks on module unload.
The ax25_uid_free call walks the ax25_uid_list and releases entries from it. The problem is that after the fisrt call to hlist_del_init the hlist_for_each_entry (which hides behind the ax25_uid_for_each) will consider the current position to be the last and will return.
Thus, the whole list will be left not freed.
---
net/ax25/ax25_uid.c +2 -0
@@ -218,9 +218,11 @@ void __exit ax25_uid_free(void)struct hlist_node *node;write_lock (&ax25_uid_lock); +again:ax25_uid_for_each (ax25_uid, node, &ax25_uid_list) {hlist_del_init (&ax25_uid->uid_node);ax25_uid_put (ax25_uid); + goto again; }write_unlock (&ax25_uid_lock); }
From: Pavel Emelyanov <[email protected]>
Date: Sat, 12 Apr 2008 16:05:44 +0400
Quoted 9 lines
The
ax25_uid_freecall walks theax25_uid_listand releases entries from it. The problem is that after the fisrt call tohlist_del_initthehlist_for_each_entry(which hides behind theax25_uid_for_each) will consider the current position to be the last and will return.Thus, the whole list will be left not freed.
Signed-off-by Pavel Emelyanov <[email protected]>
Applied, thanks Pavel.