fix overlapping memcpy in normalize_absolute_path
authorJeff King <peff@peff.net>
Thu, 23 Oct 2008 04:32:23 +0000 (04:32 +0000)
committerJunio C Hamano <gitster@pobox.com>
Sun, 2 Nov 2008 06:46:53 +0000 (23:46 -0700)
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@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
path.c

diff --git a/path.c b/path.c
index 76e8872..c1cb54b 100644 (file)
--- 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;