summaryrefslogtreecommitdiff
path: root/native/jni
diff options
context:
space:
mode:
authorIvan Maidanski <ivmai@mail.ru>2011-07-20 13:54:13 +0400
committerPekka Enberg <penberg@kernel.org>2012-10-15 13:09:14 +0300
commita6c8cc78aa8a7480519458c4f0aed648a3459599 (patch)
tree6df3b85ca0a53a4c4a454ff5dfeaa9d66655f90e /native/jni
parenta04355b53cabfb0db0529ffba02ae180479f38c0 (diff)
downloadclasspath-a6c8cc78aa8a7480519458c4f0aed648a3459599.tar.gz
Handle malloc() failure in java_util_VMTimeZone.c file.
2011-07-20 Ivan Maidanski <ivmai@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. [ penberg@kernel.org: cleanups ] Signed-off-by: Pekka Enberg <penberg@kernel.org>
Diffstat (limited to 'native/jni')
-rw-r--r--native/jni/java-util/java_util_VMTimeZone.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/native/jni/java-util/java_util_VMTimeZone.c b/native/jni/java-util/java_util_VMTimeZone.c
index a3a986d36..0830cbe8c 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"
@@ -169,7 +170,13 @@ Java_java_util_VMTimeZone_getSystemTimeZoneId (JNIEnv * env,
tz1_len = strlen (tz1);
tz2_len = strlen (tz2);
tzoff_len = jint_to_charbuf (tzoff + 11, tzoffset);
- tzid = (char *) malloc (tz1_len + tz2_len + tzoff_len + 1); /* FIXME alloc */
+ tzid = (char *) malloc (tz1_len + tz2_len + tzoff_len + 1);
+ 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);