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 | pull: do not abuse 'break' inside a shell 'case' (diff) | |
| parent | update-index: fix segfault with missing --cacheinfo argument (diff) | |
| download | git-9a597edc831038b8c449bd3e527ca2976e4e55a6.tar.gz git-9a597edc831038b8c449bd3e527ca2976e4e55a6.zip | |
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 && |
