From d0485b1bee43a76ce2f64230b66587643e833569 Mon Sep 17 00:00:00 2001 From: tromey Date: Wed, 23 Jul 2003 15:31:43 +0000 Subject: * java/lang/natSystem.cc (arraycopy): Check for overflow. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@69706 138bc75d-0d04-0410-961f-82ee72b054a4 --- libjava/ChangeLog | 2 ++ libjava/java/lang/natSystem.cc | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) (limited to 'libjava') diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 4f6ad8055f7..03645462408 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,5 +1,7 @@ 2003-07-23 Tom Tromey + * java/lang/natSystem.cc (arraycopy): Check for overflow. + * boehm.cc (_Jv_BuildGCDescr): Use `1ULL'. 2003-07-22 Tom Tromey diff --git a/libjava/java/lang/natSystem.cc b/libjava/java/lang/natSystem.cc index e2d42324386..4a08bb138bf 100644 --- a/libjava/java/lang/natSystem.cc +++ b/libjava/java/lang/natSystem.cc @@ -66,8 +66,10 @@ java::lang::System::arraycopy (jobject src, jint src_offset, __JArray *src_a = (__JArray *) src; __JArray *dst_a = (__JArray *) dst; if (src_offset < 0 || dst_offset < 0 || count < 0 - || src_offset + count > src_a->length - || dst_offset + count > dst_a->length) + || (unsigned jint) src_offset > (unsigned jint) src_a->length + || (unsigned jint) (src_offset + count) > (unsigned jint) src_a->length + || (unsigned jint) dst_offset > (unsigned jint) dst_a->length + || (unsigned jint) (dst_offset + count) > (unsigned jint) dst_a->length) throw new ArrayIndexOutOfBoundsException; // Do-nothing cases. -- cgit v1.2.3