Re: [PATCH] fsck: avoid looking at NULL blob->object
- Date: Tue, 12 Jun 2018 05:51:21 -0400
- From: Jeff King <peff@xxxxxxxx>
- Subject: Re: [PATCH] fsck: avoid looking at NULL blob->object
On Sat, Jun 09, 2018 at 03:44:30PM +0200, Martin Ågren wrote:
> On 9 June 2018 at 11:21, Jeff King <peff@xxxxxxxx> wrote:
> > On Sat, Jun 09, 2018 at 10:50:36AM +0200, Martin Ågren wrote:
> >> On 9 June 2018 at 10:32, Jeff King <peff@xxxxxxxx> wrote:
> >> > 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
> >> s/passed/dereferenced/? Probably doesn't affect the fix though.
> > Well, we passed it, and then that function dereferenced it. :)
> > I'm going to re-roll for the minor bits that Eric pointed out, so I'll
> > try to word this better.
> My bad. I somehow thought we get into trouble already before we call
> `report()`. Well, we do, since we have undefined behavior. But for all
> practical purposes `&blob->object` and `blob` are the same
> (NULL-)pointer so we only crash after we call `report()`.
> Anyway, obviously no need to do anything about this in a v3.
Ah, yeah, I didn't really think of it that way. But certainly you are
right that the moment we look at &blob->object, we are invoking
undefined behavior according to the standard. Hopefully the wording
tweak I made covers both ways of thinking about it. :)