From 92bcf9c6a0840c80fadbeda7692aa8929292c273 Mon Sep 17 00:00:00 2001 From: Pekka Enberg Date: Thu, 17 Mar 2011 19:52:18 +0000 Subject: Fix Java_java_nio_VMDirectByteBuffer_allocate() for negative capacity JavaDocs clearly state that ByteBuffer.allocateDirect() must throw IllegalArgumentException if capacity is negative. 2011-03-17 Pekka Enberg * native/jni/java-nio/java_nio_VMDirectByteBuffer.c: (Java_java_nio_VMDirectByteBuffer_allocate): Check for negative capacity. --- ChangeLog | 6 ++++++ native/jni/java-nio/java_nio_VMDirectByteBuffer.c | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/ChangeLog b/ChangeLog index 489813aa8..533304117 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2011-03-17 Pekka Enberg + + * native/jni/java-nio/java_nio_VMDirectByteBuffer.c: + (Java_java_nio_VMDirectByteBuffer_allocate): Check for negative + capacity. + 2011-03-14 Andrew John Hughes PR classpath/42390 diff --git a/native/jni/java-nio/java_nio_VMDirectByteBuffer.c b/native/jni/java-nio/java_nio_VMDirectByteBuffer.c index bfee7e9dc..7325c5b8b 100644 --- a/native/jni/java-nio/java_nio_VMDirectByteBuffer.c +++ b/native/jni/java-nio/java_nio_VMDirectByteBuffer.c @@ -51,6 +51,13 @@ Java_java_nio_VMDirectByteBuffer_allocate { void *buffer; + if (capacity < 0) + { + JCL_ThrowException (env, "java/lang/IllegalArgumentException", + "negative capacity"); + return 0; + } + buffer = malloc (capacity); if (buffer == NULL) -- cgit v1.2.1