summaryrefslogtreecommitdiff
path: root/usr.bin/ftp/ftp.c
diff options
context:
space:
mode:
authorTodd C. Miller <millert@cvs.openbsd.org>2000-06-30 16:00:30 +0000
committerTodd C. Miller <millert@cvs.openbsd.org>2000-06-30 16:00:30 +0000
commitb643bb9badf4a995d989b8daf3e33ba8ee6ffda2 (patch)
tree87720e8aa60a5b4230d0072dfd2b3d422d7dd1cd /usr.bin/ftp/ftp.c
parent46239127052c30fac93140fbe021cdd151fdac8a (diff)
warnx?/errx? paranoia (use "%s" not a bare string unless it is a
constant). These are not security holes but it is worth fixing them anyway both for robustness and so folks looking for examples in the tree are not misled into doing something potentially dangerous. Furthermore, it is a bad idea to assume that pathnames will not include '%' in them and that error routines don't return strings with '%' in them (especially in light of the possibility of locales).
Diffstat (limited to 'usr.bin/ftp/ftp.c')
-rw-r--r--usr.bin/ftp/ftp.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/usr.bin/ftp/ftp.c b/usr.bin/ftp/ftp.c
index a29bbe1ffea..0e360768ff8 100644
--- a/usr.bin/ftp/ftp.c
+++ b/usr.bin/ftp/ftp.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ftp.c,v 1.37 2000/06/27 00:19:16 fgsch Exp $ */
+/* $OpenBSD: ftp.c,v 1.38 2000/06/30 16:00:14 millert Exp $ */
/* $NetBSD: ftp.c,v 1.27 1997/08/18 10:20:23 lukem Exp $ */
/*
@@ -67,7 +67,7 @@
#if 0
static char sccsid[] = "@(#)ftp.c 8.6 (Berkeley) 10/27/94";
#else
-static char rcsid[] = "$OpenBSD: ftp.c,v 1.37 2000/06/27 00:19:16 fgsch Exp $";
+static char rcsid[] = "$OpenBSD: ftp.c,v 1.38 2000/06/30 16:00:14 millert Exp $";
#endif
#endif /* not lint */
@@ -165,7 +165,7 @@ hookup(host, port)
error = getaddrinfo(host, pbuf, &hints, &res0);
}
if (error) {
- warn(gai_strerror(error));
+ warn("%s", gai_strerror(error));
code = -1;
return (0);
}
@@ -216,7 +216,7 @@ hookup(host, port)
break;
}
if (s < 0) {
- warn(cause);
+ warn("%s", cause);
code = -1;
freeaddrinfo(res0);
return 0;
@@ -1276,6 +1276,8 @@ reinit:
* What we've got at this point is a string of comma separated
* one-byte unsigned integer values, separated by commas.
*/
+ if (!pasvcmd)
+ goto bad;
if (strcmp(pasvcmd, "PASV") == 0) {
if (data_addr.su_family != AF_INET) {
fputs(