simplified how the "scp" command line is created in the libssh2_scp_recv()
function
This commit is contained in:
parent
1a630c5c09
commit
f56b8ef605
20
src/scp.c
20
src/scp.c
@ -58,11 +58,7 @@ libssh2_scp_recv(LIBSSH2_SESSION * session, const char *path, struct stat * sb)
|
|||||||
session->scpRecv_mtime = 0;
|
session->scpRecv_mtime = 0;
|
||||||
session->scpRecv_atime = 0;
|
session->scpRecv_atime = 0;
|
||||||
|
|
||||||
session->scpRecv_command_len = path_len + sizeof("scp -f ");
|
session->scpRecv_command_len = path_len + sizeof("scp -f ") + (sb?1:0);
|
||||||
|
|
||||||
if (sb) {
|
|
||||||
session->scpRecv_command_len++;
|
|
||||||
}
|
|
||||||
|
|
||||||
session->scpRecv_command =
|
session->scpRecv_command =
|
||||||
LIBSSH2_ALLOC(session, session->scpRecv_command_len);
|
LIBSSH2_ALLOC(session, session->scpRecv_command_len);
|
||||||
@ -72,17 +68,9 @@ libssh2_scp_recv(LIBSSH2_SESSION * session, const char *path, struct stat * sb)
|
|||||||
0);
|
0);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
if (sb) {
|
|
||||||
memcpy(session->scpRecv_command, "scp -pf ",
|
/* sprintf() is fine here since we allocated a large enough buffer */
|
||||||
sizeof("scp -pf ") - 1);
|
sprintf(session->scpRecv_command, "scp -%sf %s", sb?"p":"", path);
|
||||||
memcpy(session->scpRecv_command + sizeof("scp -pf ") - 1, path,
|
|
||||||
path_len);
|
|
||||||
} else {
|
|
||||||
memcpy(session->scpRecv_command, "scp -f ", sizeof("scp -f ") - 1);
|
|
||||||
memcpy(session->scpRecv_command + sizeof("scp -f ") - 1, path,
|
|
||||||
path_len);
|
|
||||||
}
|
|
||||||
session->scpRecv_command[session->scpRecv_command_len - 1] = '\0';
|
|
||||||
|
|
||||||
_libssh2_debug(session, LIBSSH2_DBG_SCP,
|
_libssh2_debug(session, LIBSSH2_DBG_SCP,
|
||||||
"Opening channel for SCP receive");
|
"Opening channel for SCP receive");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user