summaryrefslogtreecommitdiff
path: root/sha1_name.c
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2005-11-02 15:19:13 -0800
committerJunio C Hamano <junkio@cox.net>2005-11-02 16:50:58 -0800
commit9534f40bc42dd826cc26c8c8c84f6a8a5fc569f6 (patch)
tree85db17a196526144838f60d848c9582c4e113d59 /sha1_name.c
parent2fd955cc0b49de9e64b2f073ce76033975f0be24 (diff)
downloadgit-9534f40bc42dd826cc26c8c8c84f6a8a5fc569f6.tar.gz
Be careful when dereferencing tags.
One caller of deref_tag() was not careful enough to make sure what deref_tag() returned was not NULL (i.e. we found a tag object that points at an object we do not have). Fix it, and warn about refs that point at such an incomplete tag where needed. Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'sha1_name.c')
-rw-r--r--sha1_name.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sha1_name.c b/sha1_name.c
index fe409fbce4..be1755a70b 100644
--- a/sha1_name.c
+++ b/sha1_name.c
@@ -349,7 +349,7 @@ static int peel_onion(const char *name, int len, unsigned char *sha1)
if (!o)
return -1;
if (!type_string) {
- o = deref_tag(o);
+ o = deref_tag(o, name, sp - name - 2);
if (!o || (!o->parsed && !parse_object(o->sha1)))
return -1;
memcpy(sha1, o->sha1, 20);