cvs commit: src/sys/contrib/pf/net if_pfsync.c
glebius at FreeBSD.org
Mon Apr 23 10:21:36 UTC 2007
On Sat, Apr 14, 2007 at 01:01:46AM +0000, Bruce M Simpson wrote:
B> bms 2007-04-14 01:01:46 UTC
B> FreeBSD src repository
B> Modified files:
B> sys/contrib/pf/net if_pfsync.c
B> In member interface detach event handler, do not attempt to free state
B> which has already been freed by in_ifdetach(). With this cumulative change,
B> the removal of a member interface will not cause a panic in pfsync(4).
B> Requested by: yar
B> PR: 86848
Sorry for late reply on this commit, I've had email problems.
Bruce, I still think that freeing multicast memberships in the
in_ifdetach() was a bad design idea. Memory should be allocated and
freed by the same module, otherwise we've got a messy architecture.
AFAIR, you have made this change to plug a memory leak. We were
leaking multicast membership added by generic IP layer (all hosts
address?), if my memory serves me well. You should have fixed this
particular leak. Adding the major sweeper of all memberships on the
interface you have plugged this particular leak, but have broken
CARP, pfsync and any other subsystem that was cleaning memory after
itself (unlike generic IP layer does).
I think that we should plug the leak correctly and remove the
Totus tuus, Glebius.
More information about the cvs-all