aboutsummaryrefslogtreecommitdiff
path: root/net/ipv4/raw.c
diff options
context:
space:
mode:
authorMark Brown <broonie@linaro.org>2013-12-08 21:51:36 +0000
committerMark Brown <broonie@linaro.org>2013-12-08 21:51:36 +0000
commit3ba8f67bac8f610b5148b93280387d3dccf7d0dd (patch)
tree6a17c20128c75787aad74ca2e98c128bd4ed8e55 /net/ipv4/raw.c
parenta8eb5f1e4b10d8b7992ed0e6c0915687339201c3 (diff)
parent925b33756551cb5304774d2e2b39e26e82308a68 (diff)
Merge branch 'linux-linaro-lsk' into linux-linaro-lsk-android
Diffstat (limited to 'net/ipv4/raw.c')
-rw-r--r--net/ipv4/raw.c6
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);