69b3f2b
--- netkit-rsh-0.17/rcp/rcp.c.checkdir	2005-01-28 16:20:38.280031064 +0100
69b3f2b
+++ netkit-rsh-0.17/rcp/rcp.c	2005-01-28 16:25:56.479657368 +0100
69b3f2b
@@ -716,6 +716,10 @@
69b3f2b
 			size = size * 10 + (*cp++ - '0');
69b3f2b
 		if (*cp++ != ' ')
69b3f2b
 			SCREWUP("size not delimited");
69b3f2b
+		if ((strchr(cp, '/') != NULL) || (strcmp(cp, "..") == 0)) {
69b3f2b
+			error("rcp: unexpected filename: %s", cp);
69b3f2b
+			exit(1);
69b3f2b
+		}
69b3f2b
 		if (targisdir) {
69b3f2b
 			static char *namebuf;
69b3f2b
 			static int cursize;
69b3f2b
@@ -734,6 +738,8 @@
69b3f2b
 			np = targ;
69b3f2b
 		exists = stat(np, &stb) == 0;
69b3f2b
 		if (buf[0] == 'D') {
69b3f2b
+			if (!iamrecursive)
69b3f2b
+				SCREWUP("received directory without -r");
69b3f2b
 			if (exists) {
69b3f2b
 				if ((stb.st_mode&S_IFMT) != S_IFDIR) {
69b3f2b
 					errno = ENOTDIR;