Fix IPX module unload
[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 <jbohac@suse.cz> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
26e2080a00
commit
e8c72f47cc
+16
-8
@@ -2035,19 +2035,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);
|
||||
|
||||
Reference in New Issue
Block a user