Ensure our network layer is properly cleaned up before PuTTY exits.
[u/mdw/putty] / scp.c
diff --git a/scp.c b/scp.c
index 60ca11c..bde4cda 100644 (file)
--- a/scp.c
+++ b/scp.c
@@ -210,7 +210,7 @@ void fatalbox(char *fmt, ...)
                0 /*lParam */ ))SleepEx(1000, TRUE);
     }
 
-    exit(1);
+    cleanup_exit(1);
 }
 void connection_fatal(char *fmt, ...)
 {
@@ -233,7 +233,7 @@ void connection_fatal(char *fmt, ...)
                0 /*lParam */ ))SleepEx(1000, TRUE);
     }
 
-    exit(1);
+    cleanup_exit(1);
 }
 
 /*
@@ -268,6 +268,8 @@ int from_backend(int is_stderr, char *data, int datalen)
     unsigned char *p = (unsigned char *) data;
     unsigned len = (unsigned) datalen;
 
+    assert(len > 0);
+
     /*
      * stderr data is just spouted to local stderr and otherwise
      * ignored.
@@ -402,7 +404,7 @@ static void bump(char *fmt, ...)
                0 /*lParam */ ))SleepEx(1000, TRUE);
     }
 
-    exit(1);
+    cleanup_exit(1);
 }
 
 /*
@@ -2053,7 +2055,7 @@ static void usage(void)
     printf
        ("  -gui hWnd GUI mode with the windows handle for receiving messages\n");
 #endif
-    exit(1);
+    cleanup_exit(1);
 }
 
 /*