diff --git a/src/client/client_cli.c b/src/client/client_cli.c index 1b96cce..65b6850 100644 --- a/src/client/client_cli.c +++ b/src/client/client_cli.c @@ -102,7 +102,7 @@ static int parse_ull_arg(const char* val, unsigned long long* out, const char* o } static int parse_size_arg(const char* value, unsigned long long* out) { - if (!value || *value == '\0' || *value == '-') + if (!value || *value < '0' || *value > '9') return -1; char* end; errno = 0; diff --git a/tests/test_client_cli.c b/tests/test_client_cli.c index 69b862c..d4c314e 100644 --- a/tests/test_client_cli.c +++ b/tests/test_client_cli.c @@ -277,7 +277,8 @@ static void test_parse_args_max_alloc_sizes() { } static void test_parse_args_rejects_invalid_max_alloc() { - const char* values[] = {"0", "-1", "1Z", "1K2", "18446744073709551615K"}; + const char* values[] = {"0", "-1", "+1", " 1", "1 ", + "1Z", "1K2", "1 K", "1\tK", "18446744073709551615K"}; for (size_t i = 0; i < sizeof(values) / sizeof(values[0]); i++) { Config* cfg = config_create(); char* argv[] = {"fastsync", "--max-alloc", (char*)values[i], "/src", "/dst"};