From 2b796360acbdf3186ab9a5dcb84fe416eda4ffd5 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Sat, 11 Feb 2006 18:51:19 -0800 Subject: [PATCH] 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 --- object.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/object.c b/object.c index 3259862ab2..c3616da813 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;