# Re: \[PATCH\] net: inet: diag: Fix an error handling

- From: David Ahern \<hidden\>
- Date: 2016-09-12 14:35:38 
- List: netdev
- Page: https://ratatoskr.run/netdev/2016/09/4833898
- Thread: https://ratatoskr.run/netdev/2016/09/4833468/t.md

```text
On 9/12/16 12:02 AM, Christophe JAILLET wrote:
> diff --git a/net/ipv4/inet_diag.c b/net/ipv4/inet_diag.c
> index abfbe492ebfe..795af25cf84c 100644
> --- a/net/ipv4/inet_diag.c
> +++ b/net/ipv4/inet_diag.c
> @@ -1134,7 +1134,6 @@ int inet_diag_handler_get_info(struct sk_buff *skb, struct sock *sk)
>  
>  	handler = inet_diag_lock_handler(sk->sk_protocol);
>  	if (IS_ERR(handler)) {
> -		inet_diag_unlock_handler(handler);
>  		nlmsg_cancel(skb, nlh);
>  		return PTR_ERR(handler);
>  	}
> 

That call is needed. inet_diag_unlock_handler does not operate on the input arg but a global mutex. Perhaps a better patch is to change inet_diag_unlock_handler() to a void.
```
