Re: [PATCH v4 5/8] status: print per-file porcelain v2 status data
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Aug 5, 2016, 21:09 UTC
- Message-ID
- <CAPc5daUr7OgFeefbwWLWFt3KW_9X-ijRmHa2oj0--zY4fqt82A@mail.gmail.com>
- In-Reply-To
- <20160805210222.a2rvlmioim4psbhw@sigill.intra.peff.net>
On Fri, Aug 5, 2016 at 2:02 PM, Jeff King <peff@peff.net> wrote:
Show 20 quoted lines
> On Tue, Aug 02, 2016 at 10:12:14AM -0400, Jeff Hostetler wrote:
>> + switch (d->stagemask) {
>> + case 1: key = "DD"; break; /* both deleted */
>> + ...
>> + case 7: key = "UU"; break; /* both modified */
>> + }
>> [...]
>> + fprintf(s->fp, "%c %s %s %06o %06o %06o %06o %s %s %s %s%c",
>> + unmerged_prefix, key, submodule_token,
>
> Coverity complains that "key" can be uninitialized here. I think it's
> wrong, and just doesn't know that d->stagemask is constrained to 1-7.
>
> But perhaps it is worth adding a:
>
> default:
> die("BUG: unhandled unmerged status %x", d->stagemask);
>
> to the end of the switch. That would shut up Coverity, and give us a
> better indication if our constraint is violated.This is pure curiosity but I wonder if Coverity shuts up if we instead switched on (d->stagemask & 07). Your "default: BUG" suggestion is what we should use as a real fix, of course.