Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 184042
b: refs/heads/master
c: 81d54ec
h: refs/heads/master
v: v3
  • Loading branch information
Gerrit Renker authored and David S. Miller committed Feb 13, 2010
1 parent 1bc566a commit d4f7cb9
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 17 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 55d955902a7f78e3e7c9ddbc71a4a050d9d44810
refs/heads/master: 81d54ec8479a2c695760da81f05b5a9fb2dbe40a
15 changes: 7 additions & 8 deletions trunk/net/ipv4/udp.c
Original file line number Diff line number Diff line change
Expand Up @@ -1117,7 +1117,7 @@ int udp_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
struct inet_sock *inet = inet_sk(sk);
struct sockaddr_in *sin = (struct sockaddr_in *)msg->msg_name;
struct sk_buff *skb;
unsigned int ulen, copied;
unsigned int ulen;
int peeked;
int err;
int is_udplite = IS_UDPLITE(sk);
Expand All @@ -1138,10 +1138,9 @@ int udp_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
goto out;

ulen = skb->len - sizeof(struct udphdr);
copied = len;
if (copied > ulen)
copied = ulen;
else if (copied < ulen)
if (len > ulen)
len = ulen;
else if (len < ulen)
msg->msg_flags |= MSG_TRUNC;

/*
Expand All @@ -1150,14 +1149,14 @@ int udp_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
* coverage checksum (UDP-Lite), do it before the copy.
*/

if (copied < ulen || UDP_SKB_CB(skb)->partial_cov) {
if (len < ulen || UDP_SKB_CB(skb)->partial_cov) {
if (udp_lib_checksum_complete(skb))
goto csum_copy_err;
}

if (skb_csum_unnecessary(skb))
err = skb_copy_datagram_iovec(skb, sizeof(struct udphdr),
msg->msg_iov, copied);
msg->msg_iov, len);
else {
err = skb_copy_and_csum_datagram_iovec(skb,
sizeof(struct udphdr),
Expand Down Expand Up @@ -1186,7 +1185,7 @@ int udp_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
if (inet->cmsg_flags)
ip_cmsg_recv(msg, skb);

err = copied;
err = len;
if (flags & MSG_TRUNC)
err = ulen;

Expand Down
15 changes: 7 additions & 8 deletions trunk/net/ipv6/udp.c
Original file line number Diff line number Diff line change
Expand Up @@ -322,7 +322,7 @@ int udpv6_recvmsg(struct kiocb *iocb, struct sock *sk,
struct ipv6_pinfo *np = inet6_sk(sk);
struct inet_sock *inet = inet_sk(sk);
struct sk_buff *skb;
unsigned int ulen, copied;
unsigned int ulen;
int peeked;
int err;
int is_udplite = IS_UDPLITE(sk);
Expand All @@ -341,10 +341,9 @@ int udpv6_recvmsg(struct kiocb *iocb, struct sock *sk,
goto out;

ulen = skb->len - sizeof(struct udphdr);
copied = len;
if (copied > ulen)
copied = ulen;
else if (copied < ulen)
if (len > ulen)
len = ulen;
else if (len < ulen)
msg->msg_flags |= MSG_TRUNC;

is_udp4 = (skb->protocol == htons(ETH_P_IP));
Expand All @@ -355,14 +354,14 @@ int udpv6_recvmsg(struct kiocb *iocb, struct sock *sk,
* coverage checksum (UDP-Lite), do it before the copy.
*/

if (copied < ulen || UDP_SKB_CB(skb)->partial_cov) {
if (len < ulen || UDP_SKB_CB(skb)->partial_cov) {
if (udp_lib_checksum_complete(skb))
goto csum_copy_err;
}

if (skb_csum_unnecessary(skb))
err = skb_copy_datagram_iovec(skb, sizeof(struct udphdr),
msg->msg_iov, copied );
msg->msg_iov,len);
else {
err = skb_copy_and_csum_datagram_iovec(skb, sizeof(struct udphdr), msg->msg_iov);
if (err == -EINVAL)
Expand Down Expand Up @@ -411,7 +410,7 @@ int udpv6_recvmsg(struct kiocb *iocb, struct sock *sk,
datagram_recv_ctl(sk, msg, skb);
}

err = copied;
err = len;
if (flags & MSG_TRUNC)
err = ulen;

Expand Down

0 comments on commit d4f7cb9

Please sign in to comment.