From: Ivan Maidanski <iv...@mail.ru>

2011-07-20  Ivan Maidanski  <iv...@mail.ru>

        * 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  <iv...@mail.ru>
+
+       * 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  <iv...@mail.ru>
 
        * 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


Reply via email to