diff options
author | Jeff King <peff@peff.net> | 2020-07-28 23:21:52 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2020-07-29 01:02:17 +0300 |
commit | 819f0e76b110458488c41741b0dcd538483848c0 (patch) | |
tree | 19dadce2b11898856e1a2a06666ee97be3ca04af /argv-array.h | |
parent | 47ae905ffb98cc4d4fd90083da6bc8dab55d9ecc (diff) |
argv-array: use size_t for count and alloc
On most 64-bit platforms, "int" is significantly smaller than a size_t,
which could lead to integer overflow and under-allocation of the array.
It's probably impossible to trigger in practice, as it would imply on
the order of 2^32 individual allocations. Even if was possible to grow
an array in that way (and we typically only use it for sets of strings,
like command line options), each allocation needs a pointer, malloc
overhead, etc. You'd quite likely run out of RAM before succeeding in
such an overflow.
But all that hand-waving aside, it's easy enough to use the correct
type, so let's do so.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'argv-array.h')
-rw-r--r-- | argv-array.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/argv-array.h b/argv-array.h index a7d3b10707..4fc57b6902 100644 --- a/argv-array.h +++ b/argv-array.h @@ -29,8 +29,8 @@ extern const char *empty_argv[]; */ struct argv_array { const char **argv; - int argc; - int alloc; + size_t argc; + size_t alloc; }; #define ARGV_ARRAY_INIT { empty_argv, 0, 0 } |