summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2014-06-09 18:26:49 (GMT)
committerJunio C Hamano <gitster@pobox.com>2014-06-09 18:26:49 (GMT)
commit0147602c2bf1fff790b06295e6139117a381b206 (patch)
tree6b47cc8081c2fe556a3a01d1c20880c90b182c61
parentbfbdfa33f6d491904a7d4390280dfc695ec9ae1a (diff)
parentc8e1ee4f2c8e28b7eef824248f09ba37599593d7 (diff)
downloadgit-0147602c2bf1fff790b06295e6139117a381b206.zip
git-0147602c2bf1fff790b06295e6139117a381b206.tar.gz
git-0147602c2bf1fff790b06295e6139117a381b206.tar.bz2
Merge branch 'jc/rev-parse-argh-dashed-multi-words'
"update-index --cacheinfo" in 2.0 crashes on a malformed command line. * 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 &&