Commit e8c72f47 authored by Jiri Bohac's avatar Jiri Bohac Committed by Greg Kroah-Hartman

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: default avatarJiri Bohac <jbohac@suse.cz>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 26e2080a
...@@ -2035,19 +2035,27 @@ static void __exit ipx_proto_finito(void) ...@@ -2035,19 +2035,27 @@ static void __exit ipx_proto_finito(void)
ipxitf_cleanup(); ipxitf_cleanup();
unregister_snap_client(pSNAP_datalink); if (pSNAP_datalink) {
pSNAP_datalink = NULL; unregister_snap_client(pSNAP_datalink);
pSNAP_datalink = NULL;
}
unregister_8022_client(p8022_datalink); if (p8022_datalink) {
p8022_datalink = NULL; unregister_8022_client(p8022_datalink);
p8022_datalink = NULL;
}
dev_remove_pack(&ipx_8023_packet_type); dev_remove_pack(&ipx_8023_packet_type);
destroy_8023_client(p8023_datalink); if (p8023_datalink) {
p8023_datalink = NULL; destroy_8023_client(p8023_datalink);
p8023_datalink = NULL;
}
dev_remove_pack(&ipx_dix_packet_type); dev_remove_pack(&ipx_dix_packet_type);
destroy_EII_client(pEII_datalink); if (pEII_datalink) {
pEII_datalink = NULL; destroy_EII_client(pEII_datalink);
pEII_datalink = NULL;
}
proto_unregister(&ipx_proto); proto_unregister(&ipx_proto);
sock_unregister(ipx_family_ops.family); sock_unregister(ipx_family_ops.family);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment