Merge master.kernel.org:/pub/scm/linux/kernel/git/acme/net-2.6
This commit is contained in:
commit
cffc7b38a2
@ -463,6 +463,7 @@ static int dccp_v4_send_response(struct sock *sk, struct request_sock *req,
|
||||
if (skb != NULL) {
|
||||
const struct inet_request_sock *ireq = inet_rsk(req);
|
||||
|
||||
memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt));
|
||||
err = ip_build_and_send_pkt(skb, sk, ireq->loc_addr,
|
||||
ireq->rmt_addr,
|
||||
ireq->opt);
|
||||
@ -647,6 +648,7 @@ int dccp_v4_send_reset(struct sock *sk, enum dccp_reset_codes code)
|
||||
if (skb != NULL) {
|
||||
const struct inet_sock *inet = inet_sk(sk);
|
||||
|
||||
memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt));
|
||||
err = ip_build_and_send_pkt(skb, sk,
|
||||
inet->saddr, inet->daddr, NULL);
|
||||
if (err == NET_XMIT_CN)
|
||||
|
@ -62,10 +62,8 @@ int dccp_transmit_skb(struct sock *sk, struct sk_buff *skb)
|
||||
|
||||
skb->h.raw = skb_push(skb, dccp_header_size);
|
||||
dh = dccp_hdr(skb);
|
||||
/*
|
||||
* Data packets are not cloned as they are never retransmitted
|
||||
*/
|
||||
if (skb_cloned(skb))
|
||||
|
||||
if (!skb->sk)
|
||||
skb_set_owner_w(skb, sk);
|
||||
|
||||
/* Build DCCP header and checksum it. */
|
||||
@ -102,6 +100,7 @@ int dccp_transmit_skb(struct sock *sk, struct sk_buff *skb)
|
||||
|
||||
DCCP_INC_STATS(DCCP_MIB_OUTSEGS);
|
||||
|
||||
memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt));
|
||||
err = ip_queue_xmit(skb, 0);
|
||||
if (err <= 0)
|
||||
return err;
|
||||
@ -243,7 +242,8 @@ int dccp_write_xmit(struct sock *sk, struct sk_buff *skb, long *timeo)
|
||||
|
||||
err = dccp_transmit_skb(sk, skb);
|
||||
ccid_hc_tx_packet_sent(dp->dccps_hc_tx_ccid, sk, 0, len);
|
||||
}
|
||||
} else
|
||||
kfree_skb(skb);
|
||||
|
||||
return err;
|
||||
}
|
||||
|
@ -402,8 +402,6 @@ int dccp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
|
||||
* This bug was _quickly_ found & fixed by just looking at an OSTRA
|
||||
* generated callgraph 8) -acme
|
||||
*/
|
||||
if (rc != 0)
|
||||
goto out_discard;
|
||||
out_release:
|
||||
release_sock(sk);
|
||||
return rc ? : len;
|
||||
|
@ -435,17 +435,7 @@ int tcp_fragment(struct sock *sk, struct sk_buff *skb, u32 len, unsigned int mss
|
||||
int nsize, old_factor;
|
||||
u16 flags;
|
||||
|
||||
if (unlikely(len >= skb->len)) {
|
||||
if (net_ratelimit()) {
|
||||
printk(KERN_DEBUG "TCP: seg_size=%u, mss=%u, seq=%u, "
|
||||
"end_seq=%u, skb->len=%u.\n", len, mss_now,
|
||||
TCP_SKB_CB(skb)->seq, TCP_SKB_CB(skb)->end_seq,
|
||||
skb->len);
|
||||
WARN_ON(1);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
BUG_ON(len > skb->len);
|
||||
nsize = skb_headlen(skb) - len;
|
||||
if (nsize < 0)
|
||||
nsize = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user