From: Jeff King Date: Fri, 29 Jan 2010 10:28:44 GMT Subject: [PATCH 1/3] fix memcpy of overlapping area Message-ID: <20100129102844.GA6025@coredump.intra.peff.net> In-Reply-To: <20100129102518.GA5875@coredump.intra.peff.net> Caught by valgrind in t5500, but it is pretty obvious from reading the code that this is shifting elements of an array to the left, which needs memmove. Signed-off-by: Jeff King --- This was introduced in f53514b (allow deepening of a shallow repository, 2006-10-30), released as part of v1.5.0. So probably 'maint'-worthy. commit.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/commit.c b/commit.c index 632061c..731191e 100644 --- a/commit.c +++ b/commit.c @@ -224,7 +224,7 @@ int unregister_shallow(const unsigned char *sha1) if (pos < 0) return -1; if (pos + 1 < commit_graft_nr) - memcpy(commit_graft + pos, commit_graft + pos + 1, + memmove(commit_graft + pos, commit_graft + pos + 1, sizeof(struct commit_graft *) * (commit_graft_nr - pos - 1)); commit_graft_nr--; -- 1.7.0.rc0.41.g538720