in olde rcp/scp protocol mode, when rejecting a path from the server
authordjm <djm@openbsd.org>
Wed, 11 Oct 2023 05:42:08 +0000 (05:42 +0000)
committerdjm <djm@openbsd.org>
Wed, 11 Oct 2023 05:42:08 +0000 (05:42 +0000)
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

usr.bin/ssh/scp.c

index 2c2342e..e7c4da1 100644 (file)
@@ -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).
@@ -1752,8 +1752,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;