ruby-changes:19405
From: naruse <ko1@a...>
Date: Fri, 6 May 2011 17:38:49 +0900 (JST)
Subject: [ruby-changes:19405] Ruby:r31445 (trunk): * ext/date/date_core.c (DAY_IN_NANOSECONDS): refix: 31438.
naruse 2011-05-06 17:38:36 +0900 (Fri, 06 May 2011) New Revision: 31445 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=31445 Log: * ext/date/date_core.c (DAY_IN_NANOSECONDS): refix: 31438. check with LONG_MAX and cast as long; without this the calculation will be done as int and overflow. Modified files: trunk/ChangeLog trunk/ext/date/date_core.c Index: ChangeLog =================================================================== --- ChangeLog (revision 31444) +++ ChangeLog (revision 31445) @@ -1,3 +1,9 @@ +Fri May 6 16:27:33 2011 NARUSE, Yui <naruse@r...> + + * ext/date/date_core.c (DAY_IN_NANOSECONDS): refix: 31438. + check with LONG_MAX and cast as long; without this the calculation + will be done as int and overflow. + Fri May 6 15:01:11 2011 URABE Shyouhei <shyouhei@r...> * ext/syck/rubyext.c (mktime_do): avoid buffer overrun, by Index: ext/date/date_core.c =================================================================== --- ext/date/date_core.c (revision 31444) +++ ext/date/date_core.c (revision 31445) @@ -42,8 +42,8 @@ #define DAY_IN_SECONDS 86400 #define SECOND_IN_NANOSECONDS 1000000000 -#if (ULONG_MAX / DAY_IN_SECONDS) > SECOND_IN_NANOSECONDS -#define DAY_IN_NANOSECONDS LONG2NUM(DAY_IN_SECONDS * SECOND_IN_NANOSECONDS) +#if (LONG_MAX / DAY_IN_SECONDS) > SECOND_IN_NANOSECONDS +#define DAY_IN_NANOSECONDS LONG2NUM((long)DAY_IN_SECONDS * SECOND_IN_NANOSECONDS) #elif defined HAVE_LONG_LONG #define DAY_IN_NANOSECONDS LL2NUM((LONG_LONG)DAY_IN_SECONDS * SECOND_IN_NANOSECONDS) #else -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/