column: disallow negative padding

A negative padding does not make sense and can cause errors in the
memory allocator since it’s interpreted as an unsigned integer.

Reported-by: Tiago Pascoal <tiago@pascoal.net>
Signed-off-by: Kristoffer Haugsbakk <code@khaugsbakk.name>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Kristoffer Haugsbakk 2024-02-13 17:01:20 +01:00 committed by Junio C Hamano
parent 7adf215fed
commit f2d31c69ce
2 changed files with 13 additions and 0 deletions

View File

@ -45,6 +45,8 @@ int cmd_column(int argc, const char **argv, const char *prefix)
memset(&copts, 0, sizeof(copts));
copts.padding = 1;
argc = parse_options(argc, argv, prefix, options, builtin_column_usage, 0);
if (copts.padding < 0)
die(_("%s must be non-negative"), "--padding");
if (argc)
usage_with_options(builtin_column_usage, options);
if (real_command || command) {

View File

@ -196,4 +196,15 @@ EOF
test_cmp expected actual
'
test_expect_success 'padding must be non-negative' '
cat >input <<\EOF &&
1 2 3 4 5 6
EOF
cat >expected <<\EOF &&
fatal: --padding must be non-negative
EOF
test_must_fail git column --mode=column --padding=-1 <input >actual 2>&1 &&
test_cmp expected actual
'
test_done