Phillip Wood <phillip.wood123@xxxxxxxxx> writes: > On 21/10/2022 19:19, Junio C Hamano wrote: >> "Phillip Wood via GitGitGadget" <gitgitgadget@xxxxxxxxx> writes: >>> @@ -1167,6 +1167,10 @@ static int git_parse_signed(const char *value, intmax_t *ret, intmax_t max) >>> val = strtoimax(value, &end, 0); >>> if (errno == ERANGE) >>> return 0; >>> + if (end == value) { >>> + errno = EINVAL; >>> + return 0; >>> + } >> This means well, but doesn't strto*() family of functions silently >> ignore leading blanks, e.g. >> l = strtol(" 432k", &end, 0); >> ... l == 432, *end = k ... >> If you really want to reject a string with no number before the >> optional unit, end at this point may not match value. With " k" as >> input, value would point at the space at the beginning, and end >> would point at 'k'. > > It only skips the space if it sees a digit, if it does not find > anything to convert it sets *end = start. Yeah, thanks. Yes, my earlier observation was based on a faulty experiments, and the code posted as-is would be OK.