FreeBSD Bugzilla – Attachment 150466 Details for
Bug 195883
Incorrect handling of errors in tcp_output() function
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Suggested patch
rxmit.diff (text/plain), 1014 bytes, created by
Hans Petter Selasky
on 2014-12-11 08:45:18 UTC
(
hide
)
Description:
Suggested patch
Filename:
MIME Type:
Creator:
Hans Petter Selasky
Created:
2014-12-11 08:45:18 UTC
Size:
1014 bytes
patch
obsolete
>Index: tcp_output.c >=================================================================== >--- tcp_output.c (revision 275354) >+++ tcp_output.c (working copy) >@@ -167,6 +167,7 @@ > int > tcp_output(struct tcpcb *tp) > { >+#define TH_FLAG_RXMIT (1U << 8) > struct socket *so = tp->t_inpcb->inp_socket; > long len, recwin, sendwin; > int off, flags, error = 0; /* Keep compiler happy */ >@@ -1350,6 +1351,9 @@ > !tcp_timer_active(tp, TT_PERSIST)) { > tcp_seq startseq = tp->snd_nxt; > >+ /* store condition */ >+ flags |= TH_FLAG_RXMIT; >+ > /* > * Advance snd_nxt over sequence space of this segment. > */ >@@ -1426,9 +1430,7 @@ > * XXX: It is a POLA question whether calling tcp_drop right > * away would be the really correct behavior instead. > */ >- if (((tp->t_flags & TF_FORCEDATA) == 0 || >- !tcp_timer_active(tp, TT_PERSIST)) && >- ((flags & TH_SYN) == 0) && >+ if (((flags & (TH_FLAG_RXMIT | TH_SYN)) == TH_FLAG_RXMIT) && > (error != EPERM)) { > if (sack_rxmit) { > p->rxmit -= len;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 195883
: 150466