Re: [PATCH] fsck: avoid looking at NULL blob->object
- Date: Sat, 9 Jun 2018 10:45:15 +0200
- From: Duy Nguyen <pclouds@xxxxxxxxx>
- Subject: Re: [PATCH] fsck: avoid looking at NULL blob->object
On Sat, Jun 9, 2018 at 10:34 AM Jeff King <peff@xxxxxxxx> wrote:
> Commit 159e7b080b (fsck: detect gitmodules files,
> 2018-05-02) taught fsck to look at the content of
> .gitmodules files. If the object turns out not to be a blob
> at all, we just complain and punt on checking the content.
> And since this was such an obvious and trivial code path, I
> didn't even bother to add a test.
> Except it _does_ do one non-trivial thing, which is call the
> report() function, which wants us to pass a pointer to a
> "struct object". Which we don't have (we have only a "struct
> object_id"). So we erroneously passed the NULL object, which
> ends up segfaulting.
> It seems like we could refactor report() to just take the
> object_id itself. But we pass the object pointer along to
> a callback function, and indeed this ends up in
> builtin/fsck.c's objreport() which does want to look at
> other parts of the object (like the type).
And objreport() can handle OBJ_NONE well, which is the type given by
lookup_unknown_object(). So yeah this looks good.
> So instead, let's just use lookup_unknown_object() to get
> the real "struct object", and pass that.