Code

Protect peel_ref fallback case from NULL parse_object result
authorShawn O. Pearce <spearce@spearce.org>
Sun, 24 Feb 2008 08:07:19 +0000 (03:07 -0500)
committerJunio C Hamano <gitster@pobox.com>
Sun, 24 Feb 2008 08:52:55 +0000 (00:52 -0800)
If the SHA-1 we are requesting the object for does not exist in
the object database we get a NULL back.  Accessing the type from
that is not likely to succeed on any system.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
refs.c

diff --git a/refs.c b/refs.c
index 67d2a502afb60050f0ce750c21ae1a42fa5cb803..fb33da111240d9a3d579dfebb05eef951fecee23 100644 (file)
--- a/refs.c
+++ b/refs.c
@@ -506,7 +506,7 @@ int peel_ref(const char *ref, unsigned char *sha1)
 
        /* fallback - callers should not call this for unpacked refs */
        o = parse_object(base);
-       if (o->type == OBJ_TAG) {
+       if (o && o->type == OBJ_TAG) {
                o = deref_tag(o, ref, 0);
                if (o) {
                        hashcpy(sha1, o->sha1);