[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>
This commit is contained in:
parent
42c05f6e6e
commit
1539b98b56
1 changed files with 16 additions and 8 deletions
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue