diff --color-moved-ws: fix a memory leak

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>
Reviewed-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Phillip Wood 2018-10-04 11:07:43 +01:00 коммит произвёл Junio C Hamano
Родитель cf074a9b0e
Коммит fe4516d103
1 изменённых файлов: 4 добавлений и 1 удалений

5
diff.c
Просмотреть файл

@ -811,10 +811,13 @@ static int compute_ws_delta(const struct emitted_diff_symbol *a,
const struct emitted_diff_symbol *shorter = a->len > b->len ? b : a; const struct emitted_diff_symbol *shorter = a->len > b->len ? b : a;
int d = longer->len - shorter->len; int d = longer->len - shorter->len;
if (strncmp(longer->line + d, shorter->line, shorter->len))
return 0;
out->string = xmemdupz(longer->line, d); out->string = xmemdupz(longer->line, d);
out->current_longer = (a == longer); 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, static int cmp_in_block_with_wsd(const struct diff_options *o,