Skip to content

Commit

Permalink
[IPX]: Fix NULL pointer dereference on ipx unload
Browse files Browse the repository at this point in the history
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 <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
jiribohac authored and davem330 committed Feb 9, 2007
1 parent 42c05f6 commit 1539b98
Showing 1 changed file with 16 additions and 8 deletions.
24 changes: 16 additions & 8 deletions net/ipx/af_ipx.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down

0 comments on commit 1539b98

Please sign in to comment.