netlabel: Fix a potential NULL pointer dereference

Fix a potential NULL pointer dereference seen when trying to remove a
static label configuration with an invalid address/mask combination.

Signed-off-by: Paul Moore <paul.moore@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Paul Moore and committed by
David S. Miller
d25830e5 efba0180

+6 -4
+6 -4
net/netlabel/netlabel_unlabeled.c
··· 574 list_entry = netlbl_af4list_remove(addr->s_addr, mask->s_addr, 575 &iface->addr4_list); 576 spin_unlock(&netlbl_unlhsh_lock); 577 - if (list_entry == NULL) 578 ret_val = -ENOENT; 579 - entry = netlbl_unlhsh_addr4_entry(list_entry); 580 581 audit_buf = netlbl_audit_start_common(AUDIT_MAC_UNLBL_STCDEL, 582 audit_info); ··· 635 spin_lock(&netlbl_unlhsh_lock); 636 list_entry = netlbl_af6list_remove(addr, mask, &iface->addr6_list); 637 spin_unlock(&netlbl_unlhsh_lock); 638 - if (list_entry == NULL) 639 ret_val = -ENOENT; 640 - entry = netlbl_unlhsh_addr6_entry(list_entry); 641 642 audit_buf = netlbl_audit_start_common(AUDIT_MAC_UNLBL_STCDEL, 643 audit_info);
··· 574 list_entry = netlbl_af4list_remove(addr->s_addr, mask->s_addr, 575 &iface->addr4_list); 576 spin_unlock(&netlbl_unlhsh_lock); 577 + if (list_entry != NULL) 578 + entry = netlbl_unlhsh_addr4_entry(list_entry); 579 + else 580 ret_val = -ENOENT; 581 582 audit_buf = netlbl_audit_start_common(AUDIT_MAC_UNLBL_STCDEL, 583 audit_info); ··· 634 spin_lock(&netlbl_unlhsh_lock); 635 list_entry = netlbl_af6list_remove(addr, mask, &iface->addr6_list); 636 spin_unlock(&netlbl_unlhsh_lock); 637 + if (list_entry != NULL) 638 + entry = netlbl_unlhsh_addr6_entry(list_entry); 639 + else 640 ret_val = -ENOENT; 641 642 audit_buf = netlbl_audit_start_common(AUDIT_MAC_UNLBL_STCDEL, 643 audit_info);