diff options
Diffstat (limited to 'net/netlabel/netlabel_unlabeled.c')
| -rw-r--r-- | net/netlabel/netlabel_unlabeled.c | 38 | 
1 files changed, 20 insertions, 18 deletions
diff --git a/net/netlabel/netlabel_unlabeled.c b/net/netlabel/netlabel_unlabeled.c index 90c8506a0aa..8c030803217 100644 --- a/net/netlabel/netlabel_unlabeled.c +++ b/net/netlabel/netlabel_unlabeled.c @@ -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) -		call_rcu(&entry->rcu, netlbl_unlhsh_free_addr4); -	return ret_val; +	if (entry == NULL) +		return -ENOENT; + +	call_rcu(&entry->rcu, netlbl_unlhsh_free_addr4); +	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) -		call_rcu(&entry->rcu, netlbl_unlhsh_free_addr6); -	return ret_val; +	if (entry == NULL) +		return -ENOENT; + +	call_rcu(&entry->rcu, netlbl_unlhsh_free_addr6); +	return 0;  }  #endif /* IPv6 */  |