From 602c869d7a2b75f092ef96ab04fe1865ff317d5b Mon Sep 17 00:00:00 2001 From: Robin Rosenberg Date: Tue, 6 Sep 2011 17:37:53 +0200 Subject: [PATCH] Do not attempt to resolve describe-labels with less than four digits Change-Id: I21dcd3cca3b41102fd898238d8d640dea25e0caf Signed-off-by: Robin Rosenberg --- .../tst/org/eclipse/jgit/lib/RepositoryResolveTest.java | 4 ++++ org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RepositoryResolveTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RepositoryResolveTest.java index d55856ace..e76994e8b 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RepositoryResolveTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RepositoryResolveTest.java @@ -191,6 +191,10 @@ public void testParseNonGitDescribe() throws IOException { assertEquals(id, db.resolve("refs/heads/foo-g032c")); assertEquals(id, db.resolve("foo-g032c")); + assertNull(db.resolve("foo-g032")); + assertNull(db.resolve("foo-g03")); + assertNull(db.resolve("foo-g0")); + assertNull(db.resolve("foo-g")); ru = db.updateRef("refs/heads/foo-g032c-dev"); ru.setNewObjectId(id); diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java index f31217a96..4806ab922 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java @@ -599,7 +599,7 @@ private ObjectId resolveSimple(final String revstr) throws IOException { return resolveAbbreviation(revstr); int dashg = revstr.indexOf("-g"); - if ((dashg + 4) < revstr.length() && 0 <= dashg + if ((dashg + 5) < revstr.length() && 0 <= dashg && isHex(revstr.charAt(dashg + 2)) && isHex(revstr.charAt(dashg + 3)) && isAllHex(revstr, dashg + 4)) {