From c9de8611d6a3e77757a714cdf6acf46178b1d622 Mon Sep 17 00:00:00 2001 From: Ben Straub Date: Thu, 23 Aug 2012 12:29:09 -0700 Subject: Revparse: GIT_EAMBIGUOUS Revparse now returns EAMBIGUOUS if the the spec doesn't match any refs/tags, and is <4 characters. --- src/oid.c | 3 --- tests-clar/refs/revparse.c | 9 +++++++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/oid.c b/src/oid.c index 821442d1..127ad611 100644 --- a/src/oid.c +++ b/src/oid.c @@ -24,9 +24,6 @@ int git_oid_fromstrn(git_oid *out, const char *str, size_t length) size_t p; int v; - if (length < 4) - return oid_error_invalid("input too short"); - if (length > GIT_OID_HEXSZ) length = GIT_OID_HEXSZ; diff --git a/tests-clar/refs/revparse.c b/tests-clar/refs/revparse.c index 02acb884..14bd9fb8 100644 --- a/tests-clar/refs/revparse.c +++ b/tests-clar/refs/revparse.c @@ -442,3 +442,12 @@ void test_refs_revparse__disambiguation(void) */ test_object("e90810", "e90810b8df3e80c413d903f631643c716887138d"); } + +void test_refs_revparse__a_too_short_objectid_returns_EAMBIGUOUS(void) +{ + int result; + + result = git_revparse_single(&g_obj, g_repo, "e90"); + + cl_assert_equal_i(GIT_EAMBIGUOUS, result); +} -- cgit v1.2.1