From 3803252cdbcf34e9247909d73ce0239422c2916a Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Mon, 11 Aug 2008 18:07:49 -0700 Subject: [PATCH] Protect WorkingTreeIterator's name encoding from weird ByteBuffers If a ByteBuffer decides to be cute and give us an array but use an array offset that isn't zero we cannot use its array as our own encodedName array. Instead we must create a copy of the array so we can safely assume where the path starts. Signed-off-by: Shawn O. Pearce Signed-off-by: Robin Rosenberg --- org.spearce.jgit/src/org/spearce/jgit/treewalk/WorkingTreeIterator.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/org.spearce.jgit/src/org/spearce/jgit/treewalk/WorkingTreeIterator.java b/org.spearce.jgit/src/org/spearce/jgit/treewalk/WorkingTreeIterator.java index acaf33dc..f66b5e9d 100644 --- a/org.spearce.jgit/src/org/spearce/jgit/treewalk/WorkingTreeIterator.java +++ b/org.spearce.jgit/src/org/spearce/jgit/treewalk/WorkingTreeIterator.java @@ -415,7 +415,7 @@ public abstract class WorkingTreeIterator extends AbstractTreeIterator { throws CharacterCodingException { final ByteBuffer b = enc.encode(CharBuffer.wrap(getName())); encodedNameLen = b.limit(); - if (b.hasArray()) + if (b.hasArray() && b.arrayOffset() == 0) encodedName = b.array(); else b.get(encodedName = new byte[encodedNameLen]); -- 2.11.4.GIT