ruby-changes:3272
From: ko1@a...
Date: 28 Dec 2007 17:36:08 +0900
Subject: [ruby-changes:3272] akr - Ruby:r14765 (trunk): * time.c (make_time_t): verify mktime and timegm result.
akr 2007-12-28 17:35:52 +0900 (Fri, 28 Dec 2007)
New Revision: 14765
Modified files:
trunk/ChangeLog
trunk/time.c
Log:
* time.c (make_time_t): verify mktime and timegm result.
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/time.c?r1=14765&r2=14764
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=14765&r2=14764
Index: time.c
===================================================================
--- time.c (revision 14764)
+++ time.c (revision 14765)
@@ -826,40 +826,37 @@
buf = *tptr;
if (utc_p) {
#if defined(HAVE_TIMEGM)
- if ((t = timegm(&buf)) != -1)
- return t;
-#ifdef NEGATIVE_TIME_T
+ t = timegm(&buf);
+ if (t == (time_t)-1)
+#endif
+ t = search_time_t(&buf, utc_p);
if ((tmp = gmtime(&t)) &&
tptr->tm_year == tmp->tm_year &&
tptr->tm_mon == tmp->tm_mon &&
tptr->tm_mday == tmp->tm_mday &&
tptr->tm_hour == tmp->tm_hour &&
tptr->tm_min == tmp->tm_min &&
- tptr->tm_sec == tmp->tm_sec
- )
+ tptr->tm_sec == tmp->tm_sec) {
return t;
-#endif
-#endif
- return search_time_t(&buf, utc_p);
+ }
}
else {
#if defined(HAVE_MKTIME)
- if ((t = mktime(&buf)) != -1)
- return t;
-#ifdef NEGATIVE_TIME_T
+ t = mktime(&buf);
+ if (t == (time_t)-1)
+#endif
+ t = search_time_t(&buf, utc_p);
if ((tmp = localtime(&t)) &&
tptr->tm_year == tmp->tm_year &&
tptr->tm_mon == tmp->tm_mon &&
tptr->tm_mday == tmp->tm_mday &&
tptr->tm_hour == tmp->tm_hour &&
tptr->tm_min == tmp->tm_min &&
- tptr->tm_sec == tmp->tm_sec
- )
+ tptr->tm_sec == tmp->tm_sec) {
return t;
-#endif
-#endif
- return search_time_t(&buf, utc_p);
+ }
}
+ rb_raise(rb_eArgError, "couldn't generate a time");
}
static VALUE
Index: ChangeLog
===================================================================
--- ChangeLog (revision 14764)
+++ ChangeLog (revision 14765)
@@ -1,3 +1,7 @@
+Fri Dec 28 17:33:44 2007 Tanaka Akira <akr@f...>
+
+ * time.c (make_time_t): verify mktime and timegm result.
+
Fri Dec 28 16:36:33 2007 NARUSE, Yui <naruse@a...>
* lib/resolv.rb (Resolv::DNS#each_address): now returns IPv6 address.
--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml