The comments for normalize_absolute_path explicitly claim that the source and destination buffers may be the same (though they may not otherwise overlap). Thus the call to memcpy may involve copying overlapping data, and memmove should be used instead. This fixes a valgrind error in t1504. Signed-off-by: Jeff King <peff@xxxxxxxx> --- An alternative fix, since we declare that only true equality is OK, would be to keep the memcpy and explicitly check for "comp_start == dst". That might have a performance benefit if memcpy is faster than memmove, but I don't know that normalize_absolute_path is in any critical paths. path.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/path.c b/path.c index 76e8872..c1cb54b 100644 --- a/path.c +++ b/path.c @@ -348,7 +348,7 @@ int normalize_absolute_path(char *buf, const char *path) goto next; } - memcpy(dst, comp_start, comp_len); + memmove(dst, comp_start, comp_len); dst += comp_len; next: comp_start = comp_end; -- 1.6.0.2.825.g6d19d -- 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