From: Junio C Hamano Date: Thu, 15 May 2025 17:24:35 GMT Subject: Re: [PATCH 03/14] fetch-pack: defensive programming Message-ID: In-Reply-To: <9cafbd36817aabbe18197938c409edaddf7dcab2.1747313140.git.gitgitgadget@gmail.com> "Johannes Schindelin via GitGitGadget" writes: > From: Johannes Schindelin > > CodeQL points out that `parse_object()` can return NULL values. > > Signed-off-by: Johannes Schindelin > --- > fetch-pack.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/fetch-pack.c b/fetch-pack.c > index 1ed5e11dd568..4cbcb0c14c48 100644 > --- a/fetch-pack.c > +++ b/fetch-pack.c > @@ -155,7 +155,7 @@ static struct commit *deref_without_lazy_fetch(const struct object_id *oid, > struct tag *tag = (struct tag *) > parse_object(the_repository, oid); > > - if (!tag->tagged) > + if (!tag || !tag->tagged) > return NULL; The "oid" can come from corruptible sources like commit graph file, so I agree with your analysis that it may name a missing object in a corrupt repository, leading "tag" being NULL. Looks correct. > if (mark_tags_complete_and_check_obj_db) > tag->object.flags |= COMPLETE;