diff options
author | Junio C Hamano <gitster@pobox.com> | 2022-03-06 21:25:32 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2022-03-06 21:25:32 -0800 |
commit | 283e4e7cd35ae61d86e6a3a61cfea283adc09ba5 (patch) | |
tree | c91177c0883fdbd4e347cc7f532fe281a2368089 | |
parent | Merge branch 'ac/usage-string-fixups' (diff) | |
parent | index-pack: clarify the breached limit (diff) | |
download | tgif-283e4e7cd35ae61d86e6a3a61cfea283adc09ba5.tar.xz |
Merge branch 'mc/index-pack-report-max-size'
When "index-pack" dies due to incoming data exceeding the maximum
allowed input size, include the value of the limit in the error
message.
* mc/index-pack-report-max-size:
index-pack: clarify the breached limit
-rw-r--r-- | builtin/index-pack.c | 8 | ||||
-rwxr-xr-x | t/t5302-pack-index.sh | 8 |
2 files changed, 14 insertions, 2 deletions
diff --git a/builtin/index-pack.c b/builtin/index-pack.c index 3c2e6aee3c..c45273de3b 100644 --- a/builtin/index-pack.c +++ b/builtin/index-pack.c @@ -323,8 +323,12 @@ static void use(int bytes) if (signed_add_overflows(consumed_bytes, bytes)) die(_("pack too large for current definition of off_t")); consumed_bytes += bytes; - if (max_input_size && consumed_bytes > max_input_size) - die(_("pack exceeds maximum allowed size")); + if (max_input_size && consumed_bytes > max_input_size) { + struct strbuf size_limit = STRBUF_INIT; + strbuf_humanise_bytes(&size_limit, max_input_size); + die(_("pack exceeds maximum allowed size (%s)"), + size_limit.buf); + } } static const char *open_pack_file(const char *pack_name) diff --git a/t/t5302-pack-index.sh b/t/t5302-pack-index.sh index 8ee67df38f..b0095ab41d 100755 --- a/t/t5302-pack-index.sh +++ b/t/t5302-pack-index.sh @@ -284,4 +284,12 @@ test_expect_success 'index-pack -v --stdin produces progress for both phases' ' test_i18ngrep "Resolving deltas" err ' +test_expect_success 'too-large packs report the breach' ' + pack=$(git pack-objects --all pack </dev/null) && + sz="$(test_file_size pack-$pack.pack)" && + test "$sz" -gt 20 && + test_must_fail git index-pack --max-input-size=20 pack-$pack.pack 2>err && + grep "maximum allowed size (20 bytes)" err +' + test_done |