[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog server/asobj/Date.cpp
From: |
Benjamin Wolsey |
Subject: |
[Gnash-commit] gnash ChangeLog server/asobj/Date.cpp |
Date: |
Mon, 31 Mar 2008 07:26:46 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Benjamin Wolsey <bwy> 08/03/31 07:26:46
Modified files:
. : ChangeLog
server/asobj : Date.cpp
Log message:
Fix segfault on localtime access. Date class is a mess.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.6108&r2=1.6109
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Date.cpp?cvsroot=gnash&r1=1.53&r2=1.54
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.6108
retrieving revision 1.6109
diff -u -b -r1.6108 -r1.6109
--- ChangeLog 31 Mar 2008 07:13:58 -0000 1.6108
+++ ChangeLog 31 Mar 2008 07:26:46 -0000 1.6109
@@ -1,3 +1,9 @@
+2008-03-31 Benjamin Wolsey <address@hidden>
+
+ * server/asobj/Date.cpp: check for success of localtime - some
+ more-than-32-bit numbers fail - and set to NaN. This (probably)
+ isn't expected behaviour, but fixes a segfault.
+
2008-03-31 Zou Lunkai <address@hidden>
* libnet/cque.{h, cpp}: add the USE_STATS_QUEUE macro guard, fix
Index: server/asobj/Date.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/Date.cpp,v
retrieving revision 1.53
retrieving revision 1.54
diff -u -b -r1.53 -r1.54
--- server/asobj/Date.cpp 21 Jan 2008 20:55:55 -0000 1.53
+++ server/asobj/Date.cpp 31 Mar 2008 07:26:46 -0000 1.54
@@ -517,9 +517,11 @@
#define date_get_proto(function, timefn, element) \
static as_value function(const fn_call& fn) { \
boost::intrusive_ptr<date_as_object> date =
ensureType<date_as_object>(fn.this_ptr); \
- time_t t = (time_t)(date->value / 1000.0); \
+ time_t t = static_cast<time_t>(date->value / 1000.0); \
struct tm tm; \
- return as_value(_##timefn##_r(&t, &tm)->element); \
+ if (!_##timefn##_r(&t, &tm)) \
+ { as_value rv; rv.set_nan(); return rv; } \
+ return as_value(tm.element); \
}
/// \brief Date.getYear
- [Gnash-commit] gnash ChangeLog server/asobj/Date.cpp,
Benjamin Wolsey <=