Browse Source

Merge "DfsBlock: throw DataFormatException on 0 bytes"

stable-4.5
Shawn Pearce 9 years ago committed by Gerrit Code Review @ Eclipse.org
parent
commit
4f0ebc4c3c
  1. 9
      org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsBlock.java
  2. 3
      org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsInserter.java

9
org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsBlock.java

@ -88,9 +88,16 @@ final class DfsBlock {
return n; return n;
} }
int setInput(long pos, Inflater inf) { int setInput(long pos, Inflater inf) throws DataFormatException {
int ptr = (int) (pos - start); int ptr = (int) (pos - start);
int cnt = block.length - ptr; int cnt = block.length - ptr;
if (cnt <= 0) {
throw new DataFormatException(cnt + " bytes to inflate:" //$NON-NLS-1$
+ " at pos=" + pos //$NON-NLS-1$
+ "; block.start=" + start //$NON-NLS-1$
+ "; ptr=" + ptr //$NON-NLS-1$
+ "; block.length=" + block.length); //$NON-NLS-1$
}
inf.setInput(block, ptr, cnt); inf.setInput(block, ptr, cnt);
return cnt; return cnt;
} }

3
org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsInserter.java

@ -484,7 +484,8 @@ public class DfsInserter extends ObjectInserter {
} }
} }
private int setInput(long pos, Inflater inf) throws IOException { private int setInput(long pos, Inflater inf)
throws IOException, DataFormatException {
if (pos < currPos) if (pos < currPos)
return getOrLoadBlock(pos).setInput(pos, inf); return getOrLoadBlock(pos).setInput(pos, inf);
if (pos < currPos + currPtr) { if (pos < currPos + currPtr) {

Loading…
Cancel
Save