Another wrong array index in natClass.cc

Martin Kahlert martin.kahlert@infineon.com
Mon May 21 02:47:00 GMT 2001


Hi!
This needs someone with better knowledge of natClass.cc than me:
The patch fixes the obvious bug, but the problem may be deeper.
In my application offset was -1 (found by Electric Fence and EF_PROTECT_BELOW)
Bye,
Martin.
2001年05月21日 Martin Kahlert <martin.kahlert@infineon.com>
 * java/lang/natClass.cc (_Jv_IsAssignableFrom): Ensure that offset
	is positive
diff -rc gcc-20010514.orig/libjava/java/lang/natClass.cc gcc-20010514/libjava/java/lang/natClass.cc
*** gcc-20010514.orig/libjava/java/lang/natClass.cc	Sun May 6 16:08:26 2001
--- gcc-20010514/libjava/java/lang/natClass.cc	Mon May 21 11:35:55 2001
***************
*** 935,944 ****
 if (__builtin_expect ((if_idt == NULL), false))
 	return false; // No class implementing TARGET has been loaded. 
 jshort cl_iindex = cl_idt->cls.iindex;
 if (cl_iindex < if_idt->iface.ioffsets[0])
 {
 	 jshort offset = if_idt->iface.ioffsets[cl_iindex];
! 	 if (offset < cl_idt->cls.itable_length
 	 && cl_idt->cls.itable[offset] == target)
 	 return true;
 	}
--- 935,944 ----
 if (__builtin_expect ((if_idt == NULL), false))
 	return false; // No class implementing TARGET has been loaded. 
 jshort cl_iindex = cl_idt->cls.iindex;
 if (cl_iindex < if_idt->iface.ioffsets[0])
 {
 	 jshort offset = if_idt->iface.ioffsets[cl_iindex];
! 	 if (offset < cl_idt->cls.itable_length && offset >= 0
 	 && cl_idt->cls.itable[offset] == target)
 	 return true;
 	}
-- 
The early bird gets the worm. If you want something else for 
breakfast, get up later.


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /