Browse Source

reftable: increment pointer *after* reading uint16

This fixes timezone reads out of the reflog.

Change-Id: I126d8742e5e904a074c544514180720466164f7c
Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
stable-5.5
Han-Wen Nienhuys 5 years ago
parent
commit
d7ee5aafee
  1. 2
      org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/reftable/ReftableTest.java
  2. 4
      org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/reftable/BlockReader.java

2
org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/reftable/ReftableTest.java

@ -624,6 +624,8 @@ public class ReftableTest {
assertEquals(ObjectId.zeroId(), lc.getReflogEntry().getOldId());
assertEquals(id(1), lc.getReflogEntry().getNewId());
assertEquals(who, lc.getReflogEntry().getWho());
// compare string too, to catch tz differences.
assertEquals(who.toExternalString(), lc.getReflogEntry().getWho().toExternalString());
assertEquals(msg, lc.getReflogEntry().getComment());
assertTrue(lc.next());

4
org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/reftable/BlockReader.java

@ -557,7 +557,9 @@ class BlockReader {
}
private short readInt16() {
return (short) NB.decodeUInt16(buf, ptr += 2);
short result =(short) NB.decodeUInt16(buf, ptr);
ptr += 2;
return result;
}
private int readVarint32() {

Loading…
Cancel
Save