linux-sg2042/net/caif
David S. Miller b2df5a8446 net/caif: Fix dangling list pointer in freed object on error.
rtnl_link_ops->setup(), and the "setup" callback passed to alloc_netdev*(),
cannot make state changes which need to be undone on failure.  There is
no cleanup mechanism available at this point.

So we have to add the caif private instance to the global list once we
are sure that register_netdev() has succedded in ->newlink().

Otherwise, if register_netdev() fails, the caller will invoke free_netdev()
and we will have a reference to freed up memory on the chnl_net_list.

Signed-off-by: David S. Miller <davem@davemloft.net>
2011-02-08 14:31:31 -08:00
..
Kconfig caif: Kconfig and Makefile fixes 2010-06-29 00:06:38 -07:00
Makefile Net: caif: Makefile: Remove deprecated items 2010-11-22 08:16:09 -08:00
caif_config_util.c caif: Bugfix for socket priority, bindtodev and dbg channel. 2010-11-03 18:50:03 -07:00
caif_dev.c caif: Bugfix for socket priority, bindtodev and dbg channel. 2010-11-03 18:50:03 -07:00
caif_socket.c caif: don't set connection request param size before copying data 2011-01-10 16:00:54 -08:00
cfcnfg.c caif: checking the wrong variable 2011-01-15 20:58:11 -08:00
cfctrl.c caif: Remove noisy printout when disconnecting caif socket 2010-11-03 18:50:04 -07:00
cfdbgl.c caif: Bugfix for socket priority, bindtodev and dbg channel. 2010-11-03 18:50:03 -07:00
cfdgml.c net/caif: Use pr_fmt 2010-09-06 18:48:43 -07:00
cffrml.c net/caif: Use pr_fmt 2010-09-06 18:48:43 -07:00
cfmuxl.c net/caif: Use pr_fmt 2010-09-06 18:48:43 -07:00
cfpkt_skbuff.c net/caif: Use pr_fmt 2010-09-06 18:48:43 -07:00
cfrfml.c caif: Bugfix for socket priority, bindtodev and dbg channel. 2010-11-03 18:50:03 -07:00
cfserl.c net/caif: Use pr_fmt 2010-09-06 18:48:43 -07:00
cfsrvl.c net/caif: Use pr_fmt 2010-09-06 18:48:43 -07:00
cfutill.c net/caif: Use pr_fmt 2010-09-06 18:48:43 -07:00
cfveil.c net/caif: Use pr_fmt 2010-09-06 18:48:43 -07:00
cfvidl.c net/caif: Use pr_fmt 2010-09-06 18:48:43 -07:00
chnl_net.c net/caif: Fix dangling list pointer in freed object on error. 2011-02-08 14:31:31 -08:00