Re: [PATCH v2 2/2] Avoid a segmentation fault with renaming merges
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Nov 26, 2016, 12:53 UTC
- Message-ID
- <alpine.DEB.2.20.1611261348420.117539@virtualbox>
- In-Reply-To
- <d1571a25e8f3860a2867b00994d4d6938aa602ec.1480164459.git.johannes.schindelin@gmx.de>
Hi,
On Sat, 26 Nov 2016, Johannes Schindelin wrote:
Show 13 quoted lines
> diff --git a/merge-recursive.c b/merge-recursive.c
> index 9041c2f149..609061f58a 100644
> --- a/merge-recursive.c
> +++ b/merge-recursive.c
> @@ -235,6 +235,8 @@ static int add_cacheinfo(struct merge_options *o,
> struct cache_entry *nce;
>
> nce = refresh_cache_entry(ce, CE_MATCH_REFRESH | CE_MATCH_IGNORE_MISSING);
> + if (!nce)
> + return err(o, _("addinfo: '%s' is not up-to-date"), path);
> if (nce != ce)
> ret = add_cache_entry(nce, options);
> }BTW I was not quite sure why we need to refresh the cache entry here, and 1335d76e45 (merge: avoid "safer crlf" during recording of merge results, 2016-07-08) has a commit message for which I need some time to wrap my head around.
Also, an error here may be overkill. Maybe we should simply change the "if (nce != ce)" to an "if (nce && nce != ce)" here, as a locally-modified file will give a nicer message later, anyway.
Dunno, Dscho