Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
fsck-cache: fix SIGSEGV on bad tag object
author
Linus Torvalds
<torvalds@ppc970.osdl.org>
Tue, 3 May 2005 14:57:56 +0000
(07:57 -0700)
committer
Linus Torvalds
<torvalds@ppc970.osdl.org>
Tue, 3 May 2005 14:57:56 +0000
(07:57 -0700)
fsck_tag() failes to notice that the parsing of the tag may
have failed in the parse_object() call on the object that it
is tagging.
Noticed by Junio.
Signed-off-by: Junio C Hamano <junkio@cox.net>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
fsck-cache.c
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
54c26fb
)
diff --git
a/fsck-cache.c
b/fsck-cache.c
index 637aededbdc0a321519ecdaeeb6da61ce71319d5..fb0d82f3320b7971d50d73893d777e3ddf1bd73b 100644
(file)
--- a/
fsck-cache.c
+++ b/
fsck-cache.c
@@
-133,14
+133,17
@@
static int fsck_commit(struct commit *commit)
static int fsck_tag(struct tag *tag)
{
static int fsck_tag(struct tag *tag)
{
+ struct object *tagged = tag->tagged;
+
+ if (!tagged) {
+ printf("bad object in tag %s\n", sha1_to_hex(tag->object.sha1));
+ return -1;
+ }
if (!show_tags)
return 0;
if (!show_tags)
return 0;
- printf("tagged %s %s",
- tag->tagged->type,
- sha1_to_hex(tag->tagged->sha1));
- printf(" (%s) in %s\n",
- tag->tag, sha1_to_hex(tag->object.sha1));
+ printf("tagged %s %s", tagged->type, sha1_to_hex(tagged->sha1));
+ printf(" (%s) in %s\n", tag->tag, sha1_to_hex(tag->object.sha1));
return 0;
}
return 0;
}