edmund-wagner / junrar

plain java unrar util (former sf project)
Other
186 stars 90 forks source link

Errors in RarVM #26

Open tycoeur opened 10 years ago

tycoeur commented 10 years ago

In com.github.junrar.unpack.vm.RarVM, opcodes likes VM_INC, VM_INCB, VM_INCD, VM_DEC, VM_DECB, VM_DECD, VM_ADC, VM_SBB, VM_MUL... contains an errors:

In java operator '+', '-', '*' have priority over bitwise '&'. So: (v & 0xffffffff + 1) becomes: (v & (0xffffffff + 1)), ie always 0 So: (v & 0xffffffff - 1) becomes: (v & (0xffffffff - 1))

ref: http://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html

regards Tyco :)