From: Ivan Maidanski <[email protected]>
2011-07-20 Ivan Maidanski <[email protected]>
* native/jni/java-util/java_util_VMTimeZone.c:
Include jcl.h file.
(Java_java_util_VMTimeZone_getSystemTimeZoneId): Throw
OutOfMemoryException in case of malloc() failure.
---
ChangeLog | 7 +++++++
native/jni/java-util/java_util_VMTimeZone.c | 7 +++++++
2 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 18b6c03..c0d84cd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2011-07-20 Ivan Maidanski <[email protected]>
+
+ * native/jni/java-util/java_util_VMTimeZone.c:
+ Include jcl.h file.
+ (Java_java_util_VMTimeZone_getSystemTimeZoneId): Throw
+ OutOfMemoryException in case of malloc() failure.
+
2012-06-10 Ivan Maidanski <[email protected]>
* compat/.gitignore,
diff --git a/native/jni/java-util/java_util_VMTimeZone.c
b/native/jni/java-util/java_util_VMTimeZone.c
index a3a986d..1c4c0cf 100644
--- a/native/jni/java-util/java_util_VMTimeZone.c
+++ b/native/jni/java-util/java_util_VMTimeZone.c
@@ -53,6 +53,7 @@ exception statement from your version. */
#include <stdlib.h>
#include <jni.h>
+#include <jcl.h>
#include "java_util_VMTimeZone.h"
@@ -170,6 +171,12 @@ Java_java_util_VMTimeZone_getSystemTimeZoneId (JNIEnv *
env,
tz2_len = strlen (tz2);
tzoff_len = jint_to_charbuf (tzoff + 11, tzoffset);
tzid = (char *) malloc (tz1_len + tz2_len + tzoff_len + 1); /* FIXME alloc
*/
+ if (tzid == NULL) {
+ JCL_ThrowException (env, "java/lang/OutOfMemoryError",
+ "malloc() failed");
+ return 0;
+ }
+
memcpy (tzid, tz1, tz1_len);
memcpy (tzid + tz1_len, tzoff + 11 - tzoff_len, tzoff_len);
memcpy (tzid + tz1_len + tzoff_len, tz2, tz2_len);
--
1.7.7.6