diff options
author | Mark Brown <broonie@linaro.org> | 2013-12-08 21:51:36 +0000 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2013-12-08 21:51:36 +0000 |
commit | 3ba8f67bac8f610b5148b93280387d3dccf7d0dd (patch) | |
tree | 6a17c20128c75787aad74ca2e98c128bd4ed8e55 /net/ipv4/raw.c | |
parent | a8eb5f1e4b10d8b7992ed0e6c0915687339201c3 (diff) | |
parent | 925b33756551cb5304774d2e2b39e26e82308a68 (diff) |
Merge branch 'linux-linaro-lsk' into linux-linaro-lsk-android
Diffstat (limited to 'net/ipv4/raw.c')
-rw-r--r-- | net/ipv4/raw.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c index 6fb233772f7..402870fdfa0 100644 --- a/net/ipv4/raw.c +++ b/net/ipv4/raw.c @@ -692,11 +692,8 @@ static int raw_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg, if (flags & MSG_OOB) goto out; - if (addr_len) - *addr_len = sizeof(*sin); - if (flags & MSG_ERRQUEUE) { - err = ip_recv_error(sk, msg, len); + err = ip_recv_error(sk, msg, len, addr_len); goto out; } @@ -722,6 +719,7 @@ static int raw_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg, sin->sin_addr.s_addr = ip_hdr(skb)->saddr; sin->sin_port = 0; memset(&sin->sin_zero, 0, sizeof(sin->sin_zero)); + *addr_len = sizeof(*sin); } if (inet->cmsg_flags) ip_cmsg_recv(msg, skb); |