[ http://issues.apache.org/jira/browse/XALANJ-2146?page=all ] Henry Zongaro closed XALANJ-2146: ---------------------------------
I have confirmed that this problem is resolved in Xalan-J 2.7.0. > Byte code generated by XSLTC contains backwards branch when uninitialized > object is on stack > -------------------------------------------------------------------------------------------- > > Key: XALANJ-2146 > URL: http://issues.apache.org/jira/browse/XALANJ-2146 > Project: XalanJ2 > Type: Bug > Components: XSLTC > Versions: Latest Development Code > Reporter: Henry Zongaro > Assignee: Henry Zongaro > Priority: Critical > Fix For: 2.7 > Attachments: patch.j2146.txt > > Section 4.3.4 of the Java Virtual Machine Specification, 2nd Edition, places > the following restriction on Java byte code: > «A valid instruction sequence must not have an uninitialized object on the > operand stack or in a local variable during a backwards branch, or in a local > variable in code protected by an exception handler or a finally clause. > Otherwise, a devious piece of code might fool the verifier into thinking it > had initialized a class instance when it had, in fact, initialized a class > instance created in a previous pass through a loop.» > There are a number of places where XSLTC generates code that violates this > requirement; a strict implementation of the verification process described by > the JVM specification would detect the invalid byte code. Most popular JVMs > do not seem to detect this problem - presumably because their verification is > less stringent - but this is a problem that needs to be fixed. > See copy16.xsl for an example of the offending code sequence. The id > function seems to be involved in all cases that pose a problem. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
