summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2008-03-10 19:01:40 +0000
committerTom Tromey <tromey@redhat.com>2008-03-10 19:01:40 +0000
commit90246c32eaf76698be42bd431f5101f75163e157 (patch)
treef98ca9eb0de056fb2d0ec39de492d9121847322a
parentf6eb5c67210667b5942218ef91cfa670f2d09749 (diff)
downloadclasspath-90246c32eaf76698be42bd431f5101f75163e157.tar.gz
2008-03-10 Jim Meyering <meyering@redhat.com>
Don't leak upon failed realloc. * native/jni/classpath/jcl.c (JCL_realloc): Upon failed realloc, free the original buffer before throwing the exception.
-rw-r--r--ChangeLog6
-rw-r--r--native/jni/classpath/jcl.c4
2 files changed, 9 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index afba1df8a..8fec36940 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2008-03-10 Jim Meyering <meyering@redhat.com>
+
+ Don't leak upon failed realloc.
+ * native/jni/classpath/jcl.c (JCL_realloc): Upon failed realloc,
+ free the original buffer before throwing the exception.
+
2008-03-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* doc/cp-hacking.texinfo: Fix some typos.
diff --git a/native/jni/classpath/jcl.c b/native/jni/classpath/jcl.c
index cd3f5161d..0180ab9f0 100644
--- a/native/jni/classpath/jcl.c
+++ b/native/jni/classpath/jcl.c
@@ -1,5 +1,5 @@
/* jcl.c
- Copyright (C) 1998, 2005, 2006 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2005, 2006, 2008 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -152,9 +152,11 @@ JCL_malloc (JNIEnv * env, size_t size)
JNIEXPORT void *JNICALL
JCL_realloc (JNIEnv * env, void *ptr, size_t size)
{
+ void *orig_ptr = ptr;
ptr = realloc (ptr, size);
if (ptr == 0)
{
+ free (orig_ptr);
JCL_ThrowException (env, "java/lang/OutOfMemoryError",
"malloc() failed.");
return NULL;