Commit Diff


commit - 9c48f915c93a4d5ad0f7aa91b62f047f68054089
commit + fcd9d510efc603189fd18f2dbdd7685d30298f70
blob - 25002f0aacbc119a06152d97e75906764bb8ad7e
blob + 8bab1f9ca2a3c21f8e76aae06c738e089defc1bc
--- kamiftp/ftp.c
+++ kamiftp/ftp.c
@@ -982,7 +982,8 @@ cmd_cd(int argc, const char **argv)
 
 	if (miss != 0 || !(qid.type & QTDIR)) {
 		printf("%s: not a directory\n", argv[0]);
-		do_clunk(nfid);
+		if (miss == 0)
+			do_clunk(nfid);
 		return;
 	}
 
@@ -1083,7 +1084,8 @@ cmd_get(int argc, const char **argv)
 
 	if (miss != 0 || qid.type != 0) {
 		printf("%s: not a file\n", argv[0]);
-		do_clunk(nfid);
+		if (miss == 0)
+			do_clunk(nfid);
 		return;
 	}
 
@@ -1211,7 +1213,8 @@ cmd_page(int argc, const char **argv)
 
 	if (miss != 0 || qid.type != 0) {
 		printf("%s: not a file\n", *argv);
-		do_clunk(nfid);
+		if (miss == 0)
+			do_clunk(nfid);
 		return;
 	}