summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authornulltoken <emeric.fermas@gmail.com>2012-07-12 13:20:29 +0200
committernulltoken <emeric.fermas@gmail.com>2012-07-12 22:30:02 +0200
commit5a6f31f28b58d93232b742f02ad0a6f64c0dfbb8 (patch)
tree1bf943b82cb90abbed5df51a02e7be62a329fe1e /src
parentd1b7921a48161cf6fe5bb85a5da4c0bdac3c0df7 (diff)
downloadlibgit2-5a6f31f28b58d93232b742f02ad0a6f64c0dfbb8.tar.gz
revparse: only allow decimal specifiers in carete and tilde synatx
passing 0 to git_strol(32|64) let the implementation guess if it's dealing with an octal number or a decimal one. Let's make it safe and ensure that both 'HEAD@{010}' and 'HEAD@{10}' point at the same commit.
Diffstat (limited to 'src')
-rw-r--r--src/revparse.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/revparse.c b/src/revparse.c
index 270bdaa23..2631e50d2 100644
--- a/src/revparse.c
+++ b/src/revparse.c
@@ -482,7 +482,7 @@ static int handle_caret_syntax(git_object **out, git_repository *repo, git_objec
if (movementlen == 0) {
n = 1;
} else {
- git__strtol32(&n, movement, NULL, 0);
+ git__strtol32(&n, movement, NULL, 10);
}
commit = (git_commit*)obj;
@@ -513,7 +513,7 @@ 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 if (git__strtol32(&n, movement, NULL, 0) < 0) {
+ } else if (git__strtol32(&n, movement, NULL, 10) < 0) {
return GIT_ERROR;
}