On Tue, Jul 05, 2016 at 03:44:17PM +0200, Simon Mages wrote:
> Thats true, i found also another bug in this diff, the new one follows.

OK bluhm@

> Index: netinet/tcp_usrreq.c
> ===================================================================
> RCS file: /cvs/src/sys/netinet/tcp_usrreq.c,v
> retrieving revision 1.131
> diff -u -p -u -p -r1.131 tcp_usrreq.c
> --- netinet/tcp_usrreq.c      18 Jun 2016 10:36:13 -0000      1.131
> +++ netinet/tcp_usrreq.c      5 Jul 2016 13:41:49 -0000
> @@ -977,12 +977,13 @@ void
>  tcp_update_sndspace(struct tcpcb *tp)
>  {
>       struct socket *so = tp->t_inpcb->inp_socket;
> -     u_long nmax;
> +     u_long nmax = so->so_snd.sb_hiwat;
> 
> -     if (sbchecklowmem())
> +     if (sbchecklowmem()) {
>               /* low on memory try to get rid of some */
> -             nmax = tcp_sendspace;
> -     else if (so->so_snd.sb_wat != tcp_sendspace)
> +             if (tcp_sendspace < nmax)
> +                     nmax = tcp_sendspace;
> +     } else if (so->so_snd.sb_wat != tcp_sendspace)
>               /* user requested buffer size, auto-scaling disabled */
>               nmax = so->so_snd.sb_wat;
>       else
> @@ -1017,10 +1018,11 @@ tcp_update_rcvspace(struct tcpcb *tp)
>       struct socket *so = tp->t_inpcb->inp_socket;
>       u_long nmax = so->so_rcv.sb_hiwat;
> 
> -     if (sbchecklowmem())
> +     if (sbchecklowmem()) {
>               /* low on memory try to get rid of some */
> -             nmax = tcp_recvspace;
> -     else if (so->so_rcv.sb_wat != tcp_recvspace)
> +             if (tcp_recvspace < nmax)
> +                     nmax = tcp_recvspace;
> +     } else if (so->so_rcv.sb_wat != tcp_recvspace)
>               /* user requested buffer size, auto-scaling disabled */
>               nmax = so->so_rcv.sb_wat;
>       else {

Reply via email to