threads / discuss / 43159

Use memmove instead of memcpy for overlapping areas

Subject: Use memmove instead of memcpy for overlapping areas

## tl;dr

2 messages between Oct 30, 2006 and Oct 31, 2006.

replies: 1people: 2as markdown or json

Edgar Toernig· Oct 30, 2006, 21:26 UTC · lore

There may be more - this is just the result of a quick eye-grep for memcpy(x, x+i).

diff --git a/imap-send.c b/imap-send.c
index 16804ab..88d635f 100644
--- a/imap-send.c
+++ b/imap-send.c
@@ -272,7 +272,7 @@ buffer_gets( buffer_t * b, char **s )
 				n = b->bytes - start;
 
 				if (n)
-					memcpy( b->buf, b->buf + start, n );
+					memmove( b->buf, b->buf + start, n );
 				b->offset -= start;
 				b->bytes = n;
 				start = 0;
diff --git a/index-pack.c b/index-pack.c
index e33f605..a275982 100644
--- a/index-pack.c
+++ b/index-pack.c
@@ -61,7 +61,7 @@ static void * fill(int min)
 		die("cannot fill %d bytes", min);
 	if (input_offset) {
 		SHA1_Update(&input_ctx, input_buffer, input_offset);
-		memcpy(input_buffer, input_buffer + input_offset, input_len);
+		memmove(input_buffer, input_buffer + input_offset, input_len);
 		input_offset = 0;
 	}
 	do {
Junio C Hamano· Oct 31, 2006, 01:37 UTC · re: Edgar Toernig · lore

Re: Use memmove instead of memcpy for overlapping areas

Edgar Toernig <froese@gmx.de> writes:
> There may be more - this is just the result of a quick eye-grep
> for memcpy(x, x+i).
Thanks.  Sign-off?
Among many false hit, 
$ git grep 'memcpy.*( *\(.*\),.*\1.*+'
gives this one:
builtin-unpack-objects.c:               memcpy(buffer, buffer + offset, len);

← back to recent threads