mirror of
https://github.com/libssh2/libssh2.git
synced 2025-11-21 14:00:51 +03:00
scp.c: fix that scp_send may transmit not initialised memory
Fixes ticket 244. Thanks Torsten.
This commit is contained in:
@@ -801,12 +801,18 @@ scp_send(LIBSSH2_SESSION * session, const char *path, int mode,
|
|||||||
|
|
||||||
cmd_len = strlen((char *)session->scpSend_command);
|
cmd_len = strlen((char *)session->scpSend_command);
|
||||||
|
|
||||||
|
memset(&session->scpSend_command[cmd_len], 0,
|
||||||
|
session->scpSend_command_len - cmd_len);
|
||||||
|
|
||||||
(void)shell_quotearg(path,
|
(void)shell_quotearg(path,
|
||||||
&session->scpSend_command[cmd_len],
|
&session->scpSend_command[cmd_len],
|
||||||
session->scpSend_command_len - cmd_len);
|
session->scpSend_command_len - cmd_len);
|
||||||
|
|
||||||
session->scpSend_command[session->scpSend_command_len - 1] = '\0';
|
session->scpSend_command[session->scpSend_command_len - 1] = '\0';
|
||||||
|
|
||||||
|
session->scpSend_command_len =
|
||||||
|
strlen((char *)session->scpSend_command);
|
||||||
|
|
||||||
_libssh2_debug(session, LIBSSH2_TRACE_SCP,
|
_libssh2_debug(session, LIBSSH2_TRACE_SCP,
|
||||||
"Opening channel for SCP send");
|
"Opening channel for SCP send");
|
||||||
/* Allocate a channel */
|
/* Allocate a channel */
|
||||||
|
|||||||
Reference in New Issue
Block a user