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. -- Duy