> Stanislaw Halik wrote this message on Tue, Sep 05, 2006 at 06:51 +0200:
> > Hello,
> > 
> > A while ago, by accident, I've changed the system date back to the '98
> > using date(1). To my astonishment, screen(1) barfed about EINVAL in
> > select() and died. Programs, including opera (native FreeBSD-6 binary)
> > kept spinning the CPU until I killed them.
> > 
> > I have no means for debugging it.
> > 
> > Is this somehow expected? If not (i.e. it's a bug), is it known?
> 
> Probably, they calculated timeout's which magicly became negative, which
> isn't a valid timeout, and none of the programs are programmed well enough
> to handle the case and exhibited the behavior that you saw...

        Nope.  Just a simple limit in itimerfix.

int
itimerfix(struct timeval *tv)
{
        
        if (tv->tv_sec < 0 || tv->tv_sec > 100000000 ||
            tv->tv_usec < 0 || tv->tv_usec >= 1000000)
                return (EINVAL);
        if (tv->tv_sec == 0 && tv->tv_usec != 0 && tv->tv_usec < tick)
                tv->tv_usec = tick;
        return (0);
}

        date -j 9809051630 +%s -> 904977000
        date +%s -> 1157438219
        1157438219 - 904977000 -> 252461219 which is greater that 100000000

 
> -- 
>   John-Mark Gurney                            Voice: +1 415 225 5579
> 
>      "All that I will do, has been done, All that I have, has not."
> _______________________________________________
> [email protected] mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-stable
> To unsubscribe, send any mail to "[EMAIL PROTECTED]"
--
ISC Training!  October 16-20, 2006, in the San Francisco Bay Area,
covering topics from DNS to DHCP.  Email [EMAIL PROTECTED]
-- 
Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742                 INTERNET: [EMAIL PROTECTED]
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to