@matheusbsbs / matheus-bagliano / commits / 819f0e76b1
Fork 0

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>

Jeff King committed Jul 28, 2020 at 16:21 UTC 819f0e76b110458488c41741b0dcd538483848c0
1 file changed +2 -2
argv-array.h
+2 -2
@@ -29,8 +29,8 @@ extern const char *empty_argv[];
29 */
30 struct argv_array {
31 const char **argv;
32 - int argc;
33 - int alloc;
32 + size_t argc;
33 + size_t alloc;
34 };
35
36 #define ARGV_ARRAY_INIT { empty_argv, 0, 0 }