From: Junio C Hamano Date: Sun, 12 Feb 2006 02:51:19 +0000 (-0800) Subject: hashtable-based objects: minimum fixups. X-Git-Tag: v1.2.0~7 X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=2b796360acbdf3186ab9a5dcb84fe416eda4ffd5;p=git.git hashtable-based objects: minimum fixups. Calling hashtable_index from find_object before objs is created would result in division by zero failure. Avoid it. Also the given object name may not be aligned suitably for unsigned int; avoid dereferencing casted pointer. Signed-off-by: Junio C Hamano --- diff --git a/object.c b/object.c index 3259862a..c3616da8 100644 --- a/object.c +++ b/object.c @@ -13,17 +13,19 @@ int track_object_refs = 1; static int hashtable_index(const unsigned char *sha1) { - unsigned int i = *(unsigned int *)sha1; + unsigned int i; + memcpy(&i, sha1, sizeof(unsigned int)); return (int)(i % obj_allocs); } static int find_object(const unsigned char *sha1) { - int i = hashtable_index(sha1); + int i; if (!objs) return -1; + i = hashtable_index(sha1); while (objs[i]) { if (memcmp(sha1, objs[i]->sha1, 20) == 0) return i;