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 2008/03/28 22:30:31 UTC
DO NOT REPLY [Bug 44702] New: Calculation in LocalVariableTable.
getLocalVariable is incorrect
https://issues.apache.org/bugzilla/show_bug.cgi?id=44702
Summary: Calculation in LocalVariableTable.getLocalVariable is
incorrect
Product: BCEL
Version: 5.3
Platform: Macintosh
OS/Version: Mac OS X 10.4
Status: NEW
Severity: normal
Priority: P2
Component: Main
AssignedTo: bcel-dev@jakarta.apache.org
ReportedBy: pugh@cs.umd.edu
Created an attachment (id=21732)
--> (https://issues.apache.org/bugzilla/attachment.cgi?id=21732)
Patch to fix bug
The calculation in LocalVariableTable.getLocalVariable is incorrect:
public final LocalVariable getLocalVariable( int index, int pc ) {
for (int i = 0; i < local_variable_table_length; i++) {
if (local_variable_table[i].getIndex() == index) {
int start_pc = local_variable_table[i].getStartPC();
int end_pc = start_pc + local_variable_table[i].getLength();
if ((pc >= start_pc) && (pc < end_pc)) {
return local_variable_table[i];
}
}
}
return null;
}
>From the VM spec:
"The given local variable must have a value at indices into the code array in
the interval [start_pc, start_pc+length], that is, between start_pc and
start_pc+length inclusive. The value of start_pc must be a valid index into the
code array of this Code attribute and must be the index of the opcode of an
instruction. Either the value of start_pc+length must be a valid index into the
code array of this Code attribute and be the index of the opcode of an
instruction, or it must be the first index beyond the end of that code array."
The check should be pc <= end_pc, not pc < end_pc.
This problem exists both in HEAD and in older versions.
I've attached a patch.
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: bcel-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: bcel-dev-help@jakarta.apache.org
DO NOT REPLY [Bug 44702] Calculation in LocalVariableTable.
getLocalVariable is incorrect
Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=44702
Torsten Curdt <tc...@apache.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution| |FIXED
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: bcel-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: bcel-dev-help@jakarta.apache.org
DO NOT REPLY [Bug 44702] Calculation in LocalVariableTable.
getLocalVariable is incorrect
Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=44702
Torsten Curdt <tc...@apache.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: bcel-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: bcel-dev-help@jakarta.apache.org
DO NOT REPLY [Bug 44702] Calculation in LocalVariableTable.
getLocalVariable is incorrect
Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=44702
William Pugh <pu...@cs.umd.edu> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |pugh@cs.umd.edu
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: bcel-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: bcel-dev-help@jakarta.apache.org
DO NOT REPLY [Bug 44702] Calculation in LocalVariableTable.
getLocalVariable is incorrect
Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=44702
Torsten Curdt <tc...@apache.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|RESOLVED |CLOSED
--- Comment #1 from Torsten Curdt <tc...@apache.org> 2008-03-28 16:10:25 PST ---
Patch applied. Thanks!
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: bcel-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: bcel-dev-help@jakarta.apache.org