Avoid uninitialized variable error.
diff --git a/src/revparse.c b/src/revparse.c
index c275b55..46abb05 100644
--- a/src/revparse.c
+++ b/src/revparse.c
@@ -506,8 +506,8 @@ static int handle_linear_syntax(git_object **out, git_object *obj, const char *m
/* "~" is the same as "~1" */
if (*movement == '\0') {
n = 1;
- } else {
- git__strtol32(&n, movement, NULL, 0);
+ } else if (git__strtol32(&n, movement, NULL, 0) < 0) {
+ return GIT_ERROR;
}
commit1 = (git_commit*)obj;
diff --git a/tests-clar/refs/revparse.c b/tests-clar/refs/revparse.c
index c303e1b..2ee72f2 100644
--- a/tests-clar/refs/revparse.c
+++ b/tests-clar/refs/revparse.c
@@ -104,6 +104,9 @@ void test_refs_revparse__to_type(void)
void test_refs_revparse__linear_history(void)
{
+ cl_git_fail(git_revparse_single(&g_obj, g_repo, "foo~bar"));
+ cl_git_fail(git_revparse_single(&g_obj, g_repo, "master~bar"));
+
test_object("master~0", "a65fedf39aefe402d3bb6e24df4d4f5fe4547750");
test_object("master~1", "be3563ae3f795b2b4353bcce3a527ad0a4f7f644");
test_object("master~2", "9fd738e8f7967c078dceed8190330fc8648ee56a");