diff options
Diffstat (limited to 'net/ipv6/raw.c')
-rw-r--r-- | net/ipv6/raw.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c index 464b1c9c08e4..dff1f4b2c668 100644 --- a/net/ipv6/raw.c +++ b/net/ipv6/raw.c @@ -459,8 +459,10 @@ static int rawv6_recvmsg(struct kiocb *iocb, struct sock *sk, if (flags & MSG_OOB) return -EOPNOTSUPP; - if (flags & MSG_ERRQUEUE) - return ipv6_recv_error(sk, msg, len, addr_len); + if (flags & MSG_ERRQUEUE) { + *addr_len = sizeof(struct sockaddr_in6); + return ipv6_recv_error(sk, msg, len); + } if (np->rxpmtu && np->rxopt.bits.rxpmtu) return ipv6_recv_rxpmtu(sk, msg, len, addr_len); |