diff options
Diffstat (limited to 'libjava/classpath/native/jni/java-util/java_util_VMTimeZone.c')
-rw-r--r-- | libjava/classpath/native/jni/java-util/java_util_VMTimeZone.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/libjava/classpath/native/jni/java-util/java_util_VMTimeZone.c b/libjava/classpath/native/jni/java-util/java_util_VMTimeZone.c index a3a986d36bc..0830cbe8cb0 100644 --- a/libjava/classpath/native/jni/java-util/java_util_VMTimeZone.c +++ b/libjava/classpath/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); |