Sergey Vlasov <vsu@altlinux.ru> writes:
Enough eyeballs made this bug shallow ;-) Thanks.
diff --git a/index-pack.c b/index-pack.c
index fffddd2..49b6efe 100644
--- a/index-pack.c
+++ b/index-pack.c
@@ -166,6 +166,7 @@ static void *unpack_raw_entry(unsigned l
case OBJ_REF_DELTA:
if (pos + 20 >= pack_limit)
bad_object(offset, "object extends past end of pack");
+ memset(delta_base, 0, sizeof(*delta_base));
hashcpy(delta_base->sha1, pack_base + pos);
pos += 20;
break;
@@ -290,6 +291,7 @@ static void resolve_delta(struct delta_e
bad_object(obj->offset, "failed to apply delta");
sha1_object(result, result_size, type, obj->sha1);
+ memset(&delta_base, 0, sizeof(delta_base));
hashcpy(delta_base.sha1, obj->sha1);
if (!find_delta_childs(&delta_base, &first, &last)) {
for (j = first; j <= last; j++)
@@ -365,6 +367,7 @@ static void parse_pack_objects(void)
if (obj->type == OBJ_REF_DELTA || obj->type == OBJ_OFS_DELTA)
continue;
+ memset(&base, 0, sizeof(base));
hashcpy(base.sha1, obj->sha1);
ref = !find_delta_childs(&base, &ref_first, &ref_last);
memset(&base, 0, sizeof(base));
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to
majordomo@vger.kernel.org
More majordomo info at
http://vger.kernel.org/majordomo-info.html