On Fri, Apr 04, 2008 at 12:02:46PM +0400, Petr Kohts wrote:
> 
> > Thanks for reporting.  It seems to be the same as bug#217836.  Can you
> > describe the derivation of your patch?  It seems to be applied to
> > upstream cron code in version 4.1 from ISC.
> >
> > I'm a bit confused about the state of DST handling; there was a patch
> > applied in Debian revision -53, but the patch is large (and combined
> > with other changes) so the (intended) effect of the changes aren't
> > entirely clear to me.  As I recall, that patch also seemed to have
> > been applied in the ISC release.
> 
> As I can see here's the openbsd patch included into debian version -53:
> http://www.openbsd.org/cgi-bin/cvsweb/src/usr.sbin/cron/cron.c.diff?r1=1.3&r2=1.4&f=h
Thanks; my current understanding is that the original patch worked
when the time was manually changed by 1-3 hours, but didn't work for
real DST changes (the details aren't clear to me).

BTW, I think there's a new bug here:
http://www.openbsd.org/cgi-bin/cvsweb/src/usr.sbin/cron/misc.c.diff?r1=1.8&r2=1.11&f=h

--- misc.c.orig 2008-04-06 00:13:14.000000000 -0400
+++ misc.c      2008-04-06 00:13:10.000000000 -0400
@@ -723,17 +723,17 @@ long get_gmtoff(time_t *clock, struct tm
        offset = (local->tm_sec - gmt.tm_sec) +
            ((local->tm_min - gmt.tm_min) * 60) +
            ((local->tm_hour - gmt.tm_hour) * 3600);
 
        /* Timezone may cause year rollover to happen on a different day. */
        if (local->tm_year < gmt.tm_year)
                offset -= 24 * 3600;
        else if (local->tm_year > gmt.tm_year)
-               offset -= 24 * 3600;
+               offset += 24 * 3600;
        else if (local->tm_yday < gmt.tm_yday)
                offset -= 24 * 3600;
        else if (local->tm_yday > gmt.tm_yday)
                offset += 24 * 3600;
 
        return (offset);
 }
 #endif /* HAVE_TM_GMTOFF */



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to