netlabel: Compiler warning and NULL pointer dereference fix
Fix the two compiler warnings show below. Thanks to Geert Uytterhoeven for finding and reporting the problem. net/netlabel/netlabel_unlabeled.c:567: warning: 'entry' may be used uninitialized in this function net/netlabel/netlabel_unlabeled.c:629: warning: 'entry' may be used uninitialized in this function Signed-off-by: Paul Moore <paul.moore@hp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
30bb0e0dce
Коммит
ec8f2375d7
|
@ -562,7 +562,6 @@ static int netlbl_unlhsh_remove_addr4(struct net *net,
|
|||
const struct in_addr *mask,
|
||||
struct netlbl_audit *audit_info)
|
||||
{
|
||||
int ret_val = 0;
|
||||
struct netlbl_af4list *list_entry;
|
||||
struct netlbl_unlhsh_addr4 *entry;
|
||||
struct audit_buffer *audit_buf;
|
||||
|
@ -577,7 +576,7 @@ static int netlbl_unlhsh_remove_addr4(struct net *net,
|
|||
if (list_entry != NULL)
|
||||
entry = netlbl_unlhsh_addr4_entry(list_entry);
|
||||
else
|
||||
ret_val = -ENOENT;
|
||||
entry = NULL;
|
||||
|
||||
audit_buf = netlbl_audit_start_common(AUDIT_MAC_UNLBL_STCDEL,
|
||||
audit_info);
|
||||
|
@ -588,19 +587,21 @@ static int netlbl_unlhsh_remove_addr4(struct net *net,
|
|||
addr->s_addr, mask->s_addr);
|
||||
if (dev != NULL)
|
||||
dev_put(dev);
|
||||
if (entry && security_secid_to_secctx(entry->secid,
|
||||
&secctx,
|
||||
&secctx_len) == 0) {
|
||||
if (entry != NULL &&
|
||||
security_secid_to_secctx(entry->secid,
|
||||
&secctx, &secctx_len) == 0) {
|
||||
audit_log_format(audit_buf, " sec_obj=%s", secctx);
|
||||
security_release_secctx(secctx, secctx_len);
|
||||
}
|
||||
audit_log_format(audit_buf, " res=%u", ret_val == 0 ? 1 : 0);
|
||||
audit_log_format(audit_buf, " res=%u", entry != NULL ? 1 : 0);
|
||||
audit_log_end(audit_buf);
|
||||
}
|
||||
|
||||
if (ret_val == 0)
|
||||
if (entry == NULL)
|
||||
return -ENOENT;
|
||||
|
||||
call_rcu(&entry->rcu, netlbl_unlhsh_free_addr4);
|
||||
return ret_val;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
|
||||
|
@ -624,7 +625,6 @@ static int netlbl_unlhsh_remove_addr6(struct net *net,
|
|||
const struct in6_addr *mask,
|
||||
struct netlbl_audit *audit_info)
|
||||
{
|
||||
int ret_val = 0;
|
||||
struct netlbl_af6list *list_entry;
|
||||
struct netlbl_unlhsh_addr6 *entry;
|
||||
struct audit_buffer *audit_buf;
|
||||
|
@ -638,7 +638,7 @@ static int netlbl_unlhsh_remove_addr6(struct net *net,
|
|||
if (list_entry != NULL)
|
||||
entry = netlbl_unlhsh_addr6_entry(list_entry);
|
||||
else
|
||||
ret_val = -ENOENT;
|
||||
entry = NULL;
|
||||
|
||||
audit_buf = netlbl_audit_start_common(AUDIT_MAC_UNLBL_STCDEL,
|
||||
audit_info);
|
||||
|
@ -649,19 +649,21 @@ static int netlbl_unlhsh_remove_addr6(struct net *net,
|
|||
addr, mask);
|
||||
if (dev != NULL)
|
||||
dev_put(dev);
|
||||
if (entry && security_secid_to_secctx(entry->secid,
|
||||
&secctx,
|
||||
&secctx_len) == 0) {
|
||||
if (entry != NULL &&
|
||||
security_secid_to_secctx(entry->secid,
|
||||
&secctx, &secctx_len) == 0) {
|
||||
audit_log_format(audit_buf, " sec_obj=%s", secctx);
|
||||
security_release_secctx(secctx, secctx_len);
|
||||
}
|
||||
audit_log_format(audit_buf, " res=%u", ret_val == 0 ? 1 : 0);
|
||||
audit_log_format(audit_buf, " res=%u", entry != NULL ? 1 : 0);
|
||||
audit_log_end(audit_buf);
|
||||
}
|
||||
|
||||
if (ret_val == 0)
|
||||
if (entry == NULL)
|
||||
return -ENOENT;
|
||||
|
||||
call_rcu(&entry->rcu, netlbl_unlhsh_free_addr6);
|
||||
return ret_val;
|
||||
return 0;
|
||||
}
|
||||
#endif /* IPv6 */
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче