diff options
author | Phillip Wood <phillip.wood@dunelm.org.uk> | 2022-11-09 17:16:27 +0300 |
---|---|---|
committer | Taylor Blau <me@ttaylorr.com> | 2022-11-10 05:30:39 +0300 |
commit | 7595c0ece1d45ca540f26cecf485285f5ce8186f (patch) | |
tree | e91b323a5b5e2f12b7ff97ed8b71782897c9dde4 /t/t1300-config.sh | |
parent | 84356ff7709bd45c7e61632f1b837a7144a5178f (diff) |
config: require at least one digit when parsing numbers
If the input to strtoimax() or strtoumax() does not contain any digits
then they return zero and set `end` to point to the start of the input
string. git_parse_[un]signed() do not check `end` and so fail to return
an error and instead return a value of zero if the input string is a
valid units factor without any digits (e.g "k").
Tests are added to check that 'git config --int' and OPT_MAGNITUDE()
reject a units specifier without a leading digit.
Helped-by: Jeff King <peff@peff.net>
Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk>
Signed-off-by: Taylor Blau <me@ttaylorr.com>
Diffstat (limited to 't/t1300-config.sh')
-rwxr-xr-x | t/t1300-config.sh | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/t/t1300-config.sh b/t/t1300-config.sh index c6661e61af..2575279ab8 100755 --- a/t/t1300-config.sh +++ b/t/t1300-config.sh @@ -2228,6 +2228,12 @@ test_expect_success '--type rejects unknown specifiers' ' test_i18ngrep "unrecognized --type argument" error ' +test_expect_success '--type=int requires at least one digit' ' + test_must_fail git config --type int --default m some.key >out 2>error && + grep "bad numeric config value" error && + test_must_be_empty out +' + test_expect_success '--replace-all does not invent newlines' ' q_to_tab >.git/config <<-\EOF && [abc]key |