You are viewing a plain text version of this content. The canonical link for it is here.
Posted to bcel-dev@jakarta.apache.org by bu...@apache.org on 2003/03/25 16:43:25 UTC

DO NOT REPLY [Bug 18323] New: - Size of LDC_W's operand can be incorrect

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=18323>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=18323

Size of LDC_W's operand can be incorrect

           Summary: Size of LDC_W's operand can be incorrect
           Product: BCEL
           Version: unspecified
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: Main
        AssignedTo: bcel-dev@jakarta.apache.org
        ReportedBy: nova@to.email.ne.jp


When MethodGen read LDC_W whose index is less than 256 and dumps it, the size of
its operand becomes incorrect.

LDC_W's setIndex method can change both the opcode and the length.
But after the invocation initFromFile method change the opcode OR the length.
And its dump method determines the operand's size by the length.
As a result that can make a mismatch b/w an opcode and an operand.

LDC_W.java 1.1.1.1 and 1.3 has this problem.

A scenario(in case of LDC_W.java 1.3):
1. Suppose a LDC_W whose index is less than 256
2. initFromFile method sets the opcode to LDC_W and the length to 2.
3. dump method writes a LDC_W but it writes a byte as the operand.

I think that 1.2 has no problem.
Another solution is as follows.

--- LDC_W.java.1.1.1.1  Sat Dec 15 21:40:41 2001
+++ LDC_W.java  Wed Mar 26 00:36:01 2003
@@ -82,6 +82,6 @@
        throws IOException
   {
     setIndex(bytes.readUnsignedShort());
-    length = 3;
+    //length = 3;
   }
 }

---------------------------------------------------------------------
To unsubscribe, e-mail: bcel-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: bcel-dev-help@jakarta.apache.org