Use memmove instead of memcpy on overlapping memory areas.

Reported by Bob Alexander <balexander@expressor-software.com> in
<http://thread.gmane.org/gmane.network.ssh.libssh2.devel/2530>.
This commit is contained in:
Simon Josefsson 2009-10-28 15:31:00 +01:00
parent 82bf39dbfa
commit 463e09e55f

View File

@ -512,7 +512,7 @@ _libssh2_packet_add(LIBSSH2_SESSION * session, unsigned char *data,
message[message_len] = '\0'; message[message_len] = '\0';
language = (char *) data + 9 + message_len + 3; language = (char *) data + 9 + message_len + 3;
if (language_len) { if (language_len) {
memcpy(language, language + 1, language_len); memmove(language, language + 1, language_len);
} }
language[language_len] = '\0'; language[language_len] = '\0';
@ -571,7 +571,7 @@ _libssh2_packet_add(LIBSSH2_SESSION * session, unsigned char *data,
message[message_len] = '\0'; message[message_len] = '\0';
language = (char *) data + 6 + message_len + 3; language = (char *) data + 6 + message_len + 3;
if (language_len) { if (language_len) {
memcpy(language, language + 1, language_len); memmove(language, language + 1, language_len);
} }
language[language_len] = '\0'; language[language_len] = '\0';