The use of ports_c in ip_{conntrack,nat}_*.c
Ignacy Gawedzki
ig@lrde.epita.fr
Mon, 4 Mar 2002 00:46:07 +0100
Hi, I haven't subscribed to the list, so please reply with cc to me.
While reading connection tracking source code I noticed something that
seems to be a bug (at least a potential one).
In the init() function, in the file ip_conntrack_ftp.c, after each
successful registration of a helper, the counter ports_c in incremented.
This counter is declared static but is not used elsewhere in the file. I
presume it should be used in the fini() function when unregistering
previously registered helpers. Instead of unregistering ports_c helpers,
the fini() function attempts to unregister as many helpers as it
intended initially to register. But in case of a failed registration,
the init() function calls fini() to clean things up.
The same problem is present in ip_conntrack_irc.c and ip_nat_ftp.c. The
fini() function in the ip_nat_irc.c file seems to make correct use of
ports_c, though.
Ignacy Gawedzki
--
I used to have a sig, but I've stopped smoking now.