This is another one of those `would be nice' sort of changes. Probably not worth much at this early stage in development, but eventually worth changing. There are about 20 uses of atoi, and most calls can return a usable result in spite of an invalid input -- just because atoi returns the same thing for "99" as "99-and-any-suffix". It would be better not to ignore invalid inputs. ------------------- Also, integer overflow in object.c can cause trouble. When the xrealloc byte count exceeds 2^32 (for a 32-bit int), xrealloc will happily return a buffer of the requested (small) size, but the following memset will scribble zeroes far beyond the end of that new buffer. static int nr_objs; int obj_allocs; ... void created_object(const unsigned char *sha1, struct object *obj) { ... if (obj_allocs - 1 <= nr_objs * 2) { int i, count = obj_allocs; obj_allocs = (obj_allocs < 32 ? 32 : 2 * obj_allocs); objs = xrealloc(objs, obj_allocs * sizeof(struct object *)); memset(objs + count, 0, (obj_allocs - count) * sizeof(struct object *)); But this may be only theoretical, because the problem doesn't strike until there are over 250M objects (assuming 32-bit int and 8-byte pointers). - : send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html