diff options
author | Tom Tromey <tromey@redhat.com> | 2003-07-23 15:31:43 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2003-07-23 15:31:43 +0000 |
commit | ed6d7413173eb6caaab948e40b53c8cdb31de061 (patch) | |
tree | ac9c360eed606d25345eb4a9fc96885609a7fa95 | |
parent | 1143680ecad0e21dfdc8e35df0ac24f5c63b74ce (diff) | |
download | gcc-ed6d7413173eb6caaab948e40b53c8cdb31de061.zip gcc-ed6d7413173eb6caaab948e40b53c8cdb31de061.tar.gz gcc-ed6d7413173eb6caaab948e40b53c8cdb31de061.tar.bz2 |
* java/lang/natSystem.cc (arraycopy): Check for overflow.
From-SVN: r69706
-rw-r--r-- | libjava/ChangeLog | 2 | ||||
-rw-r--r-- | libjava/java/lang/natSystem.cc | 6 |
2 files changed, 6 insertions, 2 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 4f6ad80..0364546 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,5 +1,7 @@ 2003-07-23 Tom Tromey <tromey@redhat.com> + * java/lang/natSystem.cc (arraycopy): Check for overflow. + * boehm.cc (_Jv_BuildGCDescr): Use `1ULL'. 2003-07-22 Tom Tromey <tromey@redhat.com> diff --git a/libjava/java/lang/natSystem.cc b/libjava/java/lang/natSystem.cc index e2d4232..4a08bb1 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. |