Re: bug in VMsystem.arraycopy

[email protected] Fri, 6 Jan 2006 13:55:15 -0500
Newsgroups gmane.comp.java.vm.sablevm.general
Message-ID <[email protected]>
I also just ran it through kaffe, same problem.

On Fri, Jan 06, 2006 at 01:30:19PM -0500, [email protected] wrote:
> 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
> 
> _______________________________________________
> SableVM-user mailing list
> [email protected]
> http://sablevm.org/lists/control/listinfo/sablevm-user

-- 
Michael Atighetchi  [email protected]  BBN Technologies