Use memmove instead of memcpy for overlapping areas
Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
6dcfa306f2
commit
79a65697be
@ -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 {
|
||||||
|
@ -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 {
|
||||||
|
Loading…
Reference in New Issue
Block a user