]> git.ipfire.org Git - thirdparty/openssh-portable.git/commitdiff
upstream: in olde rcp/scp protocol mode, when rejecting a path from the
authordjm@openbsd.org <djm@openbsd.org>
Wed, 11 Oct 2023 05:42:08 +0000 (05:42 +0000)
committerDamien Miller <djm@mindrot.org>
Wed, 11 Oct 2023 05:44:40 +0000 (16:44 +1100)
server as not matching the glob that the client sent, log (at debug level)
the received pathname as well as the list of possible expected paths expanded
from the glob. bz2966

OpenBSD-Commit-ID: 0bd8db8a595334ca86bca8f36e23fc0395315765

scp.c

diff --git a/scp.c b/scp.c
index eaa407cb1de84d9ef300ace99574a9f2119d449e..492dace1233b4895779b21e6d8f201942791b013 100644 (file)
--- a/scp.c
+++ b/scp.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: scp.c,v 1.259 2023/09/10 23:12:32 djm Exp $ */
+/* $OpenBSD: scp.c,v 1.260 2023/10/11 05:42:08 djm Exp $ */
 /*
  * scp - secure remote copy.  This is basically patched BSD rcp which
  * uses ssh to do the data transfer (instead of using rcmd).
@@ -1813,8 +1813,16 @@ sink(int argc, char **argv, const char *src)
                                    fnmatch(patterns[n], cp, 0) == 0)
                                        break;
                        }
-                       if (n >= npatterns)
+                       if (n >= npatterns) {
+                               debug2_f("incoming filename \"%s\" does not "
+                                   "match any of %zu expected patterns", cp,
+                                   npatterns);
+                               for (n = 0; n < npatterns; n++) {
+                                       debug3_f("expected pattern %zu: \"%s\"",
+                                           n, patterns[n]);
+                               }
                                SCREWUP("filename does not match request");
+                       }
                }
                if (targisdir) {
                        static char *namebuf;