summaryrefslogtreecommitdiffstats
path: root/0014-libssh2-1.4.3-scp-remote-exec.patch
diff options
context:
space:
mode:
Diffstat (limited to '0014-libssh2-1.4.3-scp-remote-exec.patch')
-rw-r--r--0014-libssh2-1.4.3-scp-remote-exec.patch48
1 files changed, 48 insertions, 0 deletions
diff --git a/0014-libssh2-1.4.3-scp-remote-exec.patch b/0014-libssh2-1.4.3-scp-remote-exec.patch
new file mode 100644
index 0000000..971a7c9
--- /dev/null
+++ b/0014-libssh2-1.4.3-scp-remote-exec.patch
@@ -0,0 +1,48 @@
+From 9506e299fa5116aa8c4c626e6de1feaed9ff9ff8 Mon Sep 17 00:00:00 2001
+From: Kamil Dudka <kdudka@redhat.com>
+Date: Mon, 11 Sep 2017 21:13:45 +0200
+Subject: [PATCH] scp: do not NUL-terminate the command for remote exec (#208)
+
+It breaks SCP download/upload from/to certain server implementations.
+
+The bug does not manifest with OpenSSH, which silently drops the NUL
+byte (eventually with any garbage that follows the NUL byte) before
+executing it.
+
+Bug: https://bugzilla.redhat.com/1489736
+
+Upstream-commit: 819ef4f2037490b6aa2e870aea851b6364184090
+Signed-off-by: Kamil Dudka <kdudka@redhat.com>
+---
+ src/scp.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/scp.c b/src/scp.c
+index f3d4995..c6451bc 100644
+--- a/src/scp.c
++++ b/src/scp.c
+@@ -303,8 +303,8 @@ scp_recv(LIBSSH2_SESSION * session, const char *path, libssh2_struct_stat * sb)
+ &session->scpRecv_command[cmd_len],
+ session->scpRecv_command_len - cmd_len);
+
+- session->scpRecv_command[cmd_len] = '\0';
+- session->scpRecv_command_len = cmd_len + 1;
++ /* the command to exec should _not_ be NUL-terminated */
++ session->scpRecv_command_len = cmd_len;
+
+ _libssh2_debug(session, LIBSSH2_TRACE_SCP,
+ "Opening channel for SCP receive");
+@@ -845,8 +845,8 @@ scp_send(LIBSSH2_SESSION * session, const char *path, int mode,
+ &session->scpSend_command[cmd_len],
+ session->scpSend_command_len - cmd_len);
+
+- session->scpSend_command[cmd_len] = '\0';
+- session->scpSend_command_len = cmd_len + 1;
++ /* the command to exec should _not_ be NUL-terminated */
++ session->scpSend_command_len = cmd_len;
+
+ _libssh2_debug(session, LIBSSH2_TRACE_SCP,
+ "Opening channel for SCP send");
+--
+2.13.5
+