diff options
author | Junio C Hamano <gitster@pobox.com> | 2014-06-12 12:17:57 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2014-06-12 12:17:57 -0700 |
commit | 9a597edc831038b8c449bd3e527ca2976e4e55a6 (patch) | |
tree | 3a4d039e1a8b6ae3bcc0e6bd19f1447dccd62402 | |
parent | 8f92c7755ef2e2802e24eeb3a7de1727045950c0 (diff) | |
parent | c8e1ee4f2c8e28b7eef824248f09ba37599593d7 (diff) | |
download | git-9a597edc831038b8c449bd3e527ca2976e4e55a6.tar.gz |
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.c | 3 | ||||
-rwxr-xr-x | t/t2107-update-index-basic.sh | 4 |
2 files changed, 7 insertions, 0 deletions
diff --git a/builtin/update-index.c b/builtin/update-index.c index ba54e19cd5..ebea285e1b 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 fe2fb17102..1bafb9098c 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 && |