[PATCH v2 3/5] diff --color-moved-ws: fix a memory leak
- From
- Phillip Wood <phillip.wood@talktalk.net>
- Date
- Oct 4, 2018, 10:07 UTC
- Message-ID
- <20181004100745.4568-4-phillip.wood@talktalk.net>
- In-Reply-To
- <20181004100745.4568-1-phillip.wood@talktalk.net>
From: Phillip Wood <phillip.wood@dunelm.org.uk>
Don't duplicate the indentation string if we're not going to use it. This was found with asan.
Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk> ---
Notes:
Changes since v1:
- simplified code as suggested by Martin Ågrendiff.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/diff.c b/diff.c index e492f8b74f..9bf41bad0d 100644 --- a/diff.c +++ b/diff.c @@ -786,10 +786,13 @@ static int compute_ws_delta(const struct emitted_diff_symbol *a, const struct emitted_diff_symbol *shorter = a->len > b->len ? b : a; int d = longer->len - shorter->len; + if (strncmp(longer->line + d, shorter->line, shorter->len)) + return 0; + out->string = xmemdupz(longer->line, d); out->current_longer = (a == longer); - return !strncmp(longer->line + d, shorter->line, shorter->len); + return 1; } static int cmp_in_block_with_wsd(const struct diff_options *o,
-- 2.19.0