On Wed, 10 Jun 2009, John Baldwin wrote:

On Wednesday 10 June 2009 2:27:15 pm John Baldwin wrote:
Author: jhb
Date: Wed Jun 10 18:27:15 2009
New Revision: 193941
URL: http://svn.freebsd.org/changeset/base/193941

Log:
  Change a few members of tcpcb that store cached copies of ticks to be ints
  instead of unsigned longs.  This fixes a few overflow edge cases on 64-bit
  platforms.  Specifically, if an idle connection receives a packet shortly
  before 2^31 clock ticks of uptime (about 25 days with hz=1000) and the keep
  alive timer fires after 2^31 clock ticks, the keep alive timer will think
  that the connection has been idle for a very long time and will immediately
  drop the connection instead of sending a keep alive probe.

  Reviewed by:  silby, gnn, lstewart
  MFC after:    1 week

Note that the MFC patch for 7 is very different.  I can't change the members
to int in 7 since tcpcb is part of the ABI (for netstat, etc.).  So, for 7 I
added explicit casts in the math operations using t_rcvtime and ticks.

That has a better chance of working too.

Bruce
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to