summaryrefslogtreecommitdiff
path: root/time.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-05-06 08:16:45 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-05-06 08:16:45 +0000
commitfadc3a8bbc83b541a7b345a757e06cfe3585b8e4 (patch)
tree6f886f19f2de4ac08431aacb4327308f3edf02df /time.c
parent4bada8b864e445b6eebe1a341e30cad94dbcaf84 (diff)
* time.c (rb_localtime_r2): get rid of infinite loop bug of
localtime() on x86_64-darwin. [ruby-core:30031] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27641 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'time.c')
-rw-r--r--time.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/time.c b/time.c
index f6d0f3a7cb..62e4235603 100644
--- a/time.c
+++ b/time.c
@@ -863,6 +863,9 @@ rb_localtime_r(const time_t *tp, struct tm *result)
static struct tm *
rb_localtime_r2(const time_t *t, struct tm *result)
{
+#if defined __APPLE__ && defined __LP64__
+ if (*t != (time_t)(int)*t) return NULL;
+#endif
result = rb_localtime_r(t, result);
#if defined(HAVE_MKTIME) && defined(LOCALTIME_OVERFLOW_PROBLEM)
if (result) {