Stefan Beller <stefanbeller@xxxxxxxxx> writes: > In line 1763 of unpack-tree.c we have a condition on the current tree > if (current) { > ... > Within this block of code we can assume current to be non NULL, hence > the code after the statement in line 1796: > if (current) > return ... > > cannot be reached. > > current/newtree/oldtree are used in the > call to reject_merge() *only* for their path aka ce->name, and they > all point at the same name (there is no rename funkies here); hence > "all other failures" code path should just rely on current always > being present. > > All referenced lines have been introduced in the same commit > 076b0adc (2006-07-30, read-tree: move merge functions to the library), > which was just moving the code around. > The outer condition on the current tree (now in line 1763) was introduced > in c859600954df4c292e, June 2005, [PATCH] read-tree: save more user hassles during fast-forward. > The inner condition on the current tree was introduced in > ee6566e8d70da682ac4926d, Sept. 2005, [PATCH] Rewrite read-tree > > This issue was found by coverity, Id:290002 > > Signed-off-by: Stefan Beller <stefanbeller@xxxxxxxxx> > Helped-by: Junio C Hamano <gitster@xxxxxxxxx> > --- > unpack-trees.c | 12 ++++-------- > 1 file changed, 4 insertions(+), 8 deletions(-) > > Did I understand you right, when changing to this one? Something like that. I've already pushed out the original with a tentative "SQUASH???" on top for today's integration; I'll try to remember replacing them with this version. Thanks. > > diff --git a/unpack-trees.c b/unpack-trees.c > index c6aa8fb..42ee84e 100644 > --- a/unpack-trees.c > +++ b/unpack-trees.c > @@ -1789,15 +1789,11 @@ int twoway_merge(const struct cache_entry * const *src, > /* 20 or 21 */ > return merged_entry(newtree, current, o); > } > + else if (o->gently) { > + return -1 ; > + } > else { > - /* all other failures */ > - if (oldtree) > - return o->gently ? -1 : reject_merge(oldtree, o); > - if (current) > - return o->gently ? -1 : reject_merge(current, o); > - if (newtree) > - return o->gently ? -1 : reject_merge(newtree, o); > - return -1; > + reject_merge(current, o); > } > } > else if (newtree) { -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html