diff options
Diffstat (limited to 'net/ipv4/inet_diag.c')
| -rw-r--r-- | net/ipv4/inet_diag.c | 5 | 
1 files changed, 4 insertions, 1 deletions
diff --git a/net/ipv4/inet_diag.c b/net/ipv4/inet_diag.c index 535584c00f9..0c34bfabc11 100644 --- a/net/ipv4/inet_diag.c +++ b/net/ipv4/inet_diag.c @@ -892,13 +892,16 @@ static int __inet_diag_dump(struct sk_buff *skb, struct netlink_callback *cb,  		struct inet_diag_req_v2 *r, struct nlattr *bc)  {  	const struct inet_diag_handler *handler; +	int err = 0;  	handler = inet_diag_lock_handler(r->sdiag_protocol);  	if (!IS_ERR(handler))  		handler->dump(skb, cb, r, bc); +	else +		err = PTR_ERR(handler);  	inet_diag_unlock_handler(handler); -	return skb->len; +	return err ? : skb->len;  }  static int inet_diag_dump(struct sk_buff *skb, struct netlink_callback *cb)  |