Use memmove instead of memcpy for overlapping areas

Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Edgar Toernig 2006-10-30 17:44:27 -08:00 committed by Junio C Hamano
parent 6dcfa306f2
commit 79a65697be
2 changed files with 4 additions and 4 deletions

View file

@ -22,7 +22,7 @@ static SHA_CTX ctx;
* Make sure at least "min" bytes are available in the buffer, and * Make sure at least "min" bytes are available in the buffer, and
* return the pointer to the buffer. * return the pointer to the buffer.
*/ */
static void * fill(int min) static void *fill(int min)
{ {
if (min <= len) if (min <= len)
return buffer + offset; return buffer + offset;
@ -30,7 +30,7 @@ static void * fill(int min)
die("cannot fill %d bytes", min); die("cannot fill %d bytes", min);
if (offset) { if (offset) {
SHA1_Update(&ctx, buffer, offset); SHA1_Update(&ctx, buffer, offset);
memcpy(buffer, buffer + offset, len); memmove(buffer, buffer + offset, len);
offset = 0; offset = 0;
} }
do { do {

View file

@ -53,7 +53,7 @@ static int input_fd;
* Make sure at least "min" bytes are available in the buffer, and * Make sure at least "min" bytes are available in the buffer, and
* return the pointer to the buffer. * return the pointer to the buffer.
*/ */
static void * fill(int min) static void *fill(int min)
{ {
if (min <= input_len) if (min <= input_len)
return input_buffer + input_offset; return input_buffer + input_offset;
@ -61,7 +61,7 @@ static void * fill(int min)
die("cannot fill %d bytes", min); die("cannot fill %d bytes", min);
if (input_offset) { if (input_offset) {
SHA1_Update(&input_ctx, input_buffer, 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; input_offset = 0;
} }
do { do {