The redirect URI is untrusted input so strnvis it first before printing
it.

-- 
:wq Claudio

Index: fetch.c
===================================================================
RCS file: /cvs/src/usr.bin/ftp/fetch.c,v
retrieving revision 1.210
diff -u -p -r1.210 fetch.c
--- fetch.c     15 Sep 2022 12:47:10 -0000      1.210
+++ fetch.c     9 Nov 2022 15:29:37 -0000
@@ -949,8 +950,11 @@ noslash:
                        loctail = strchr(redirurl, '#');
                        if (loctail != NULL)
                                *loctail = '\0';
-                       if (verbose)
-                               fprintf(ttyout, "Redirected to %s\n", redirurl);
+                       if (verbose) {
+                               strnvis(gerror, redirurl, sizeof gerror,
+                                   VIS_SAFE);
+                               fprintf(ttyout, "Redirected to %s\n", gerror);
+                       }
                        ftp_close(&fin, &tls, &fd);
                        rval = url_get(redirurl, proxyenv, savefile, lastfile);
                        free(redirurl);

Reply via email to