From: Jiri Bohac Date: Wed, 14 Feb 2007 08:40:31 +0000 (+0100) Subject: [IPX]: Fix NULL pointer dereference on ipx unload X-Git-Tag: v2.6.16.41-rc1~5 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=844affa5745e38d3ac2e11d4cee79deed06df0e2;p=karo-tx-linux.git [IPX]: Fix NULL pointer dereference on ipx unload Fixes a null pointer dereference when unloading the ipx module. On initialization of the ipx module, registering certain packet types can fail. When this happens, unloading the module later dereferences NULL pointers. This patch fixes that. Please apply. Signed-off-by: Jiri Bohac Signed-off-by: David S. Miller Signed-off-by: Adrian Bunk --- diff --git a/net/ipx/af_ipx.c b/net/ipx/af_ipx.c index 8b0c25f74a43..33f0bbfcb6bd 100644 --- a/net/ipx/af_ipx.c +++ b/net/ipx/af_ipx.c @@ -2010,19 +2010,27 @@ static void __exit ipx_proto_finito(void) ipxitf_cleanup(); - unregister_snap_client(pSNAP_datalink); - pSNAP_datalink = NULL; + if (pSNAP_datalink) { + unregister_snap_client(pSNAP_datalink); + pSNAP_datalink = NULL; + } - unregister_8022_client(p8022_datalink); - p8022_datalink = NULL; + if (p8022_datalink) { + unregister_8022_client(p8022_datalink); + p8022_datalink = NULL; + } dev_remove_pack(&ipx_8023_packet_type); - destroy_8023_client(p8023_datalink); - p8023_datalink = NULL; + if (p8023_datalink) { + destroy_8023_client(p8023_datalink); + p8023_datalink = NULL; + } dev_remove_pack(&ipx_dix_packet_type); - destroy_EII_client(pEII_datalink); - pEII_datalink = NULL; + if (pEII_datalink) { + destroy_EII_client(pEII_datalink); + pEII_datalink = NULL; + } proto_unregister(&ipx_proto); sock_unregister(ipx_family_ops.family);