diff --git a/net/can/isotp.c b/net/can/isotp.c index 1662103ce125b25b1927ffd22673e90335f333bc..6b6c82206c303b9a650907337c28f501aa961de6 100644 --- a/net/can/isotp.c +++ b/net/can/isotp.c @@ -1046,12 +1046,16 @@ static int isotp_recvmsg(struct socket *sock, struct msghdr *msg, size_t size, { struct sock *sk = sock->sk; struct sk_buff *skb; + struct isotp_sock *so = isotp_sk(sk); int err = 0; int noblock; noblock = flags & MSG_DONTWAIT; flags &= ~MSG_DONTWAIT; + if (!so->bound) + return -EADDRNOTAVAIL; + skb = skb_recv_datagram(sk, flags, noblock, &err); if (!skb) return err;