Re: [PATCH] net/ipv4/tcp.c little cleanup

From: Eduard Roccatello
Date: Fri Jan 23 2004 - 15:03:44 EST


On Friday 23 January 2004 00:48, Willy Tarreau wrote:
> Hi !
>
> On Thu, Jan 22, 2004 at 10:53:37PM +0100, Eduard Roccatello wrote:
> > Hello,
> > i've done a little cleanup to net/ipv4/tcp.c
> >
> > I hope it is ok :-)
>
> I haven't looked at sysctl_max_syn_backlog type, but if it's unsigned,
> there's a risk of infinite loop for values above 2^31 on 32 bits
> machines, or 2^63 on 64 bits machine.
sysctl_max_syn_backlog is an int and max_qlen_log is a u8 (uint8_t).
i think there is no problem with them.
sysctl_max_syn_backlog max value is 1024 so max_qlen_log is just 9.

is it ok for you?

> > --- net/ipv4/tcp.c.orig 2004-01-22 22:49:38.000000000 +0100
> > +++ net/ipv4/tcp.c 2004-01-22 22:42:38.000000000 +0100
> > @@ -549,9 +549,9 @@ int tcp_listen_start(struct sock *sk)
> > return -ENOMEM;
> >
> > memset(lopt, 0, sizeof(struct tcp_listen_opt));
> > - for (lopt->max_qlen_log = 6; ; lopt->max_qlen_log++)
> > - if ((1 << lopt->max_qlen_log) >= sysctl_max_syn_backlog)
> > - break;
> > + lopt->max_qlen_log = 6;
> > + while (sysctl_max_syn_backlog > (1 << lopt->max_qlen_log))
> > + lopt->max_qlen_log++;
> > get_random_bytes(&lopt->hash_rnd, 4);
> >
> > write_lock_bh(&tp->syn_wait_lock);

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/