Merge branch 'kh/column-reject-negative-padding'
"git column" has been taught to reject negative padding value, as it would lead to nonsense behaviour including division by zero. * kh/column-reject-negative-padding: column: guard against negative padding column: disallow negative padding
This commit is contained in:
@ -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) {
|
||||
|
||||
4
column.c
4
column.c
@ -182,6 +182,8 @@ void print_columns(const struct string_list *list, unsigned int colopts,
|
||||
{
|
||||
struct column_options nopts;
|
||||
|
||||
if (opts && (0 > opts->padding))
|
||||
BUG("padding must be non-negative");
|
||||
if (!list->nr)
|
||||
return;
|
||||
assert((colopts & COL_ENABLE_MASK) != COL_AUTO);
|
||||
@ -361,6 +363,8 @@ int run_column_filter(int colopts, const struct column_options *opts)
|
||||
{
|
||||
struct strvec *argv;
|
||||
|
||||
if (opts && (0 > opts->padding))
|
||||
BUG("padding must be non-negative");
|
||||
if (fd_out != -1)
|
||||
return -1;
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
Reference in New Issue
Block a user