diff --git a/openssh-6.6.1p1-scp-non-existing-directory.patch b/openssh-6.6.1p1-scp-non-existing-directory.patch new file mode 100644 index 0000000..5412bc5 --- /dev/null +++ b/openssh-6.6.1p1-scp-non-existing-directory.patch @@ -0,0 +1,14 @@ +--- a/scp.c ++++ a/scp.c +@@ -1084,6 +1084,10 @@ sink(int argc, char **argv) + free(vect[0]); + continue; + } ++ if (buf[0] == 'C' && ! exists && np[strlen(np)-1] == '/') { ++ errno = ENOTDIR; ++ goto bad; ++ } + omode = mode; + mode |= S_IWUSR; + if ((ofd = open(np, O_WRONLY|O_CREAT, mode)) < 0) { +-- diff --git a/openssh.spec b/openssh.spec index 7d1fdc8..7e4cf7c 100644 --- a/openssh.spec +++ b/openssh.spec @@ -216,6 +216,8 @@ Patch916: openssh-6.6.1p1-selinux-contexts.patch Patch917: openssh-6.6.1p1-cisco-dh-keys.patch # log via monitor in chroots without /dev/log Patch918: openssh-6.6.1p1-log-in-chroot.patch +# scp file into non-existing directory (#1142223) +Patch919: openssh-6.6.1p1-scp-non-existing-directory.patch License: BSD Group: Applications/Internet @@ -427,6 +429,7 @@ popd %patch916 -p1 -b .contexts %patch917 -p1 -b .cisco-dh %patch918 -p1 -b .log-in-chroot +%patch919 -p1 -b .scp %patch200 -p1 -b .audit %patch201 -p1 -b .audit-fps