Hey Junio, On Tue, Feb 14, 2017 at 12:44 AM, Junio C Hamano <gitster@xxxxxxxxx> wrote: > René Scharfe <l.s.r@xxxxxx> writes: > >> Initializing to NULL is still the correct thing to do, of course -- >> together with removing the conditionals (or at least the negations). > > So, let's give Pranit a concrete "here is what we want to see > squashed in", while you guys discuss peculiarity with various > platforms and their system headers, which admittedly is a more > interesting tangent ;-) > > There are early returns with "goto finish" even before _syn > variables are first assigned to, so they would need to be > initialized to NULL. The other two get their initial values > right at the beginning, so they are OK. > > builtin/bisect--helper.c | 14 +++++--------- > 1 file changed, 5 insertions(+), 9 deletions(-) > > diff --git a/builtin/bisect--helper.c b/builtin/bisect--helper.c > index 8cd6527bd1..6949e8e5ca 100644 > --- a/builtin/bisect--helper.c > +++ b/builtin/bisect--helper.c > @@ -280,7 +280,7 @@ static int bisect_next_check(const struct bisect_terms *terms, > int missing_good = 1, missing_bad = 1, retval = 0; > char *bad_ref = xstrfmt("refs/bisect/%s", terms->term_bad); > char *good_glob = xstrfmt("%s-*", terms->term_good); > - char *bad_syn, *good_syn; > + char *bad_syn = NULL, *good_syn = NULL; > > if (ref_exists(bad_ref)) > missing_bad = 0; > @@ -341,14 +341,10 @@ static int bisect_next_check(const struct bisect_terms *terms, > } > goto finish; > finish: > - if (!bad_ref) > - free(bad_ref); > - if (!good_glob) > - free(good_glob); > - if (!bad_syn) > - free(bad_syn); > - if (!good_syn) > - free(good_syn); > + free(bad_ref); > + free(good_glob); > + free(bad_syn); > + free(good_syn); > return retval; > } This helps a lot ;) Thanks! Regards, Pranit Bauva