summaryrefslogtreecommitdiffstats
path: root/diff.c
diff options
context:
space:
mode:
authorPhillip Wood <phillip.wood@dunelm.org.uk>2018-10-04 12:07:42 +0200
committerJunio C Hamano <gitster@pobox.com>2018-10-05 07:48:07 +0200
commitcf074a9b0e589bad8e6b210ac1e3a4714463f7db (patch)
tree3e82fe484e9cad95389df5ec3b688ddb1aa50038 /diff.c
parentdiff --color-moved-ws: fix double free crash (diff)
downloadgit-cf074a9b0e589bad8e6b210ac1e3a4714463f7db.tar.xz
git-cf074a9b0e589bad8e6b210ac1e3a4714463f7db.zip
diff --color-moved-ws: fix out of bounds string access
When adjusting the start of the string to take account of the change in indentation the code was not checking that the string being adjusted was in fact longer than the indentation change. This was detected by 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>
Diffstat (limited to '')
-rw-r--r--diff.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/diff.c b/diff.c
index 566419dc75..6f12212134 100644
--- a/diff.c
+++ b/diff.c
@@ -865,7 +865,7 @@ static int cmp_in_block_with_wsd(const struct diff_options *o,
al -= wslen;
}
- if (strcmp(a, c))
+ if (al != cl || memcmp(a, c, al))
return 1;
return 0;