Re: bug in VMsystem.arraycopy
[email protected] Fri, 6 Jan 2006 13:30:19 -0500
| Newsgroups | gmane.comp.java.vm.sablevm.general |
|---|---|
| Message-ID | <[email protected]> |
It seems that this could easily be a GNU classpath bug then. I searched the GNU classpath mailing list, and people have reported similar stream problems before - will resubmit to gnu classpath folks. Merci Michael On Fri, Jan 06, 2006 at 10:31:59AM -0500, Etienne Gagnon wrote: > Hi Michael, > > Thanks for the example. To investigate the problem, I instrumented > sablevm to give more information just before throwing the exception in > arraycopy(). I have attached the patch against sablevm 1.13 (should > probably work against 1.11). > > It seems the bug is not in SableVM but somewhere in the class > libraries... There is an attempt to copy "-1" element from an array to > another. Here's what I get: > > 2006/01/06 10:25:18:304 GMT-05:00 [INFO] WhitelistHandler - Whitelist > Handler initialized. > JESSIE, alias=localhost-cert pwd=key_abc123 > JESSIE, alias=localhost pwd=key_abc123 > before decodeKey 1 > arraycopy(primitive[8],1,primitive[8],0,-1) > aha > java.lang.ArrayIndexOutOfBoundsException > at java.lang.VMSystem.arraycopy (VMSystem.java) > at java.lang.System.arraycopy (System.java:238) > ... > > Etienne > > [email protected] wrote: > > I'm trying to port a crypto application to sablevm. Let me tell you, > > there are tons of issues with this (most of them in the realm of > > security providers) - the latest one seems to point directly to sablevm though. > > -- > Etienne M. Gagnon, Ph.D. http://www.info2.uqam.ca/~egagnon/ > SableVM: http://www.sablevm.org/ > SableCC: http://www.sablecc.org/ > Index: src/libsablevm/java_lang_VMSystem.c > =================================================================== > --- src/libsablevm/java_lang_VMSystem.c (revision 4748) > +++ src/libsablevm/java_lang_VMSystem.c (working copy) > @@ -121,6 +121,14 @@ > || (_svmt_u32) dst_position + (_svmt_u32) length > > (_svmt_u32) dst_instance->size) > { > + _svmf_printf (env, stderr, "arraycopy(%s[%d],%d,%s[%d],%d,%d)\n", > + ((src_type->base_type == > + SVM_TYPE_REFERENCE) ? src_type->name : "primitive"), > + src_instance->size, src_position, > + ((dst_type->base_type == > + SVM_TYPE_REFERENCE) ? dst_type->name : "primitive"), > + dst_instance->size, dst_position, length); > + > _svmf_error_ArrayIndexOutOfBoundsException (env); > goto end; > } > _______________________________________________ > SableVM-user mailing list > [email protected] > http://sablevm.org/lists/control/listinfo/sablevm-user -- Michael Atighetchi [email protected] BBN Technologies