Date: Mon, 24 Feb 2003 12:22:46 -0800 From: "Crist J. Clark" <crist.clark@attbi.com> To: Raymond Wiker <Raymond.Wiker@fast.no> Cc: freebsd-stable@freebsd.org Subject: Re: dhclient problem in stable Message-ID: <20030224202246.GA39984@blossom.cjclark.org> In-Reply-To: <15961.2003.461479.956760@raw.grenland.fast.no> References: <15961.2003.461479.956760@raw.grenland.fast.no>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Feb 23, 2003 at 06:41:39PM +0100, Raymond Wiker wrote: > This problem has actually existed for a while, but I never got > round to reporting it. > > I'm using a Cisco 770 ISDN router to connect to my employer's > network. This router is set up with DHCP, so I can connect my various > machines to the router, tell them to get their network config from > DHCP, and all is dandy. > > Well, no quite. It seems the router is set up to return 2^32 - > 1 as the lease time, which the dhclient code interprets as -1. This > crashes at line 792 in /usr/src/contrib/isc-dhcp/client/dhclient.c, > at an expression that involves the modulo (%) operator. The reason for > the crash is that the rhs of the modulo operation is zero. Strange that this has never come up before. A time value of 0xffffffff means "infinity" in DHCP. There should be special handling of this case by the client, but I don't see it. > I can "fix" this by changing the code at line 787 (see patch > below). I'm not sure that this is the right solution, though: it may > be appropriate to make client->new->renewal an unsigned int instead of > a signed one. It is also possible that the config of the Cisco router > is out of spec :-) The fix is not strictly correct, IMHO. Infinity should really be infinity. From your report and a very cursory look at the code, it doesn't look like dhclient(8) handles infinite leases properly or at all. -- Crist J. Clark | cjclark@alum.mit.edu | cjclark@jhu.edu http://people.freebsd.org/~cjc/ | cjc@freebsd.org To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030224202246.GA39984>