summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2014-06-12 19:17:57 (GMT)
committerJunio C Hamano <gitster@pobox.com>2014-06-12 19:17:57 (GMT)
commit9a597edc831038b8c449bd3e527ca2976e4e55a6 (patch)
tree3a4d039e1a8b6ae3bcc0e6bd19f1447dccd62402
parent8f92c7755ef2e2802e24eeb3a7de1727045950c0 (diff)
parentc8e1ee4f2c8e28b7eef824248f09ba37599593d7 (diff)
downloadgit-9a597edc831038b8c449bd3e527ca2976e4e55a6.zip
git-9a597edc831038b8c449bd3e527ca2976e4e55a6.tar.gz
git-9a597edc831038b8c449bd3e527ca2976e4e55a6.tar.bz2
Merge branch 'jc/rev-parse-argh-dashed-multi-words' into maint
* jc/rev-parse-argh-dashed-multi-words: update-index: fix segfault with missing --cacheinfo argument
-rw-r--r--builtin/update-index.c3
-rwxr-xr-xt/t2107-update-index-basic.sh4
2 files changed, 7 insertions, 0 deletions
diff --git a/builtin/update-index.c b/builtin/update-index.c
index ba54e19..ebea285 100644
--- a/builtin/update-index.c
+++ b/builtin/update-index.c
@@ -637,6 +637,9 @@ static int parse_new_style_cacheinfo(const char *arg,
unsigned long ul;
char *endp;
+ if (!arg)
+ return -1;
+
errno = 0;
ul = strtoul(arg, &endp, 8);
if (errno || endp == arg || *endp != ',' || (unsigned int) ul != ul)
diff --git a/t/t2107-update-index-basic.sh b/t/t2107-update-index-basic.sh
index fe2fb17..1bafb90 100755
--- a/t/t2107-update-index-basic.sh
+++ b/t/t2107-update-index-basic.sh
@@ -29,6 +29,10 @@ test_expect_success 'update-index -h with corrupt index' '
test_i18ngrep "[Uu]sage: git update-index" broken/usage
'
+test_expect_success '--cacheinfo complains of missing arguments' '
+ test_must_fail git update-index --cacheinfo
+'
+
test_expect_success '--cacheinfo does not accept blob null sha1' '
echo content >file &&
git add file &&