Commit 0e058e789b5a4a153f9fb5d14860fc38551f0c66

J. David Ibáñez 2011-10-02T21:40:57

oid: add missing check to git_oid_fromstrn Signed-off-by: J. David Ibáñez <jdavid.ibp@gmail.com>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
diff --git a/src/oid.c b/src/oid.c
index 08e9305..b47fa2c 100644
--- a/src/oid.c
+++ b/src/oid.c
@@ -54,6 +54,9 @@ int git_oid_fromstrn(git_oid *out, const char *str, size_t length)
 
 	if (length % 2) {
 		v = (from_hex[(unsigned char)str[p + 0]] << 4);
+		if (v < 0)
+			return git__throw(GIT_ENOTOID, "Failed to generate sha1. Given string is not a valid sha1 hash");
+
 		out->id[p / 2] = (unsigned char)v;
 		p += 2;
 	}