diff options
author | Vicent Marti <tanoku@gmail.com> | 2013-03-25 21:39:11 +0100 |
---|---|---|
committer | Vicent Marti <tanoku@gmail.com> | 2013-03-25 21:39:11 +0100 |
commit | 13640d1bb8376e3f07f66498a5b9bdde9ff3d7d6 (patch) | |
tree | 72b2030e9bf518a2d58513283457ffa8793aebce | |
parent | 1f10747854f04d0ff0e582682613a7cc8a3bcbc8 (diff) | |
download | libgit2-13640d1bb8376e3f07f66498a5b9bdde9ff3d7d6.tar.gz |
oid: Do not parse OIDs longer than 40
-rw-r--r-- | src/oid.c | 2 | ||||
-rw-r--r-- | tests-clar/core/oid.c | 4 |
2 files changed, 2 insertions, 4 deletions
@@ -25,7 +25,7 @@ int git_oid_fromstrn(git_oid *out, const char *str, size_t length) int v; if (length > GIT_OID_HEXSZ) - length = GIT_OID_HEXSZ; + return oid_error_invalid("too long"); for (p = 0; p < length - 1; p += 2) { v = (git__fromhex(str[p + 0]) << 4) diff --git a/tests-clar/core/oid.c b/tests-clar/core/oid.c index cd88b4e7c..08791cce6 100644 --- a/tests-clar/core/oid.c +++ b/tests-clar/core/oid.c @@ -11,7 +11,7 @@ void test_core_oid__initialize(void) { cl_git_pass(git_oid_fromstr(&id, str_oid)); cl_git_pass(git_oid_fromstrp(&idp, str_oid_p)); - cl_git_pass(git_oid_fromstrp(&idm, str_oid_m)); + cl_git_fail(git_oid_fromstrp(&idm, str_oid_m)); } void test_core_oid__streq(void) @@ -27,6 +27,4 @@ void test_core_oid__streq(void) cl_assert(git_oid_streq(&idp, "deadbeef") == -1); cl_assert(git_oid_streq(&idp, "I'm not an oid.... :)") == -1); - - cl_assert(git_oid_cmp(&id, &idm) == 0); } |