Karthik Nayak <karthik.188@xxxxxxxxx> writes: > @@ -2586,13 +2649,15 @@ int sha1_object_info_extended(const unsigned char *sha1, struct object_info *oi, > *(oi->disk_sizep) = 0; > if (oi->delta_base_sha1) > hashclr(oi->delta_base_sha1); > + if (oi->typename) > + strbuf_addstr(oi->typename, typename(co->type)); > oi->whence = OI_CACHED; > return 0; > } Just before the pre-context of this hunk, there is this bit: if (oi->typep) *(oi->typep) = co->type; which tells me that the callers of this function is allowed to pass a NULL in oi->typep when they are not interested in the type of the object. > if (!find_pack_entry(real, &e)) { > /* Most likely it's a loose object. */ > - if (!sha1_loose_object_info(real, oi)) { > + if (!sha1_loose_object_info(real, oi, flags)) { > oi->whence = OI_LOOSE; > return 0; > } > @@ -2616,6 +2681,8 @@ int sha1_object_info_extended(const unsigned char *sha1, struct object_info *oi, > oi->u.packed.is_delta = (rtype == OBJ_REF_DELTA || > rtype == OBJ_OFS_DELTA); > } > + if (oi->typename) > + strbuf_addstr(oi->typename, typename(*oi->typep)); So, it makes me wonder what guarantee we have that this does not dereference a NULL here. -- To unsubscribe from this list: 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