From owner-freebsd-current Thu Dec 18 08:05:05 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.7/8.8.7) id IAA28209 for current-outgoing; Thu, 18 Dec 1997 08:05:05 -0800 (PST) (envelope-from owner-freebsd-current) Received: from fredriks-1.pr.mcs.net (fredriks-1.pr.mcs.net [205.164.50.241]) by hub.freebsd.org (8.8.7/8.8.7) with ESMTP id IAA28184 for ; Thu, 18 Dec 1997 08:04:40 -0800 (PST) (envelope-from lars@fredriks-1.pr.mcs.net) Received: (from lars@localhost) by fredriks-1.pr.mcs.net (8.8.7/8.8.8) id JAA03716 for current@freebsd.org; Thu, 18 Dec 1997 09:52:27 -0600 (CST) (envelope-from lars) From: Lars Fredriksen Message-Id: <199712181552.JAA03716@fredriks-1.pr.mcs.net> Subject: EDOM and hz To: current@freebsd.org Date: Thu, 18 Dec 1997 09:52:27 -0600 (CST) X-Mailer: ELM [version 2.4ME+ PL28 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-freebsd-current@freebsd.org X-Loop: FreeBSD.org Precedence: bulk Hi, This is a section of code in uipc_socket.c: case SO_SNDTIMEO: case SO_RCVTIMEO: { struct timeval *tv; short val; if (m == NULL || m->m_len < sizeof (*tv)) { error = EINVAL; goto bad; } tv = mtod(m, struct timeval *); if (tv->tv_sec > SHRT_MAX / hz - hz) { error = EDOM; goto bad; } val = tv->tv_sec * hz + tv->tv_usec / tick; If we are running with hz anything but 100 this code sort of breaks. That is: 32767/100-100 = 227 but 32767/250-250 = -119 Can we modify this check in such a fashion that works more universally? Perhaps by changing val to an int?? and make it: if (tv->tv_sec > INT_MAX/hz -hz) Lars -- ------------------------------------------------------------------- Lars Fredriksen fredriks@mcs.com (home) lars@fredriks-1.pr.mcs.net (home-home) ----- End of forwarded message from lars ----- -- ------------------------------------------------------------------- Lars Fredriksen fredriks@mcs.com (home) lars@fredriks-1.pr.mcs.net (home-home)