]> andersk Git - gssapi-openssh.git/blobdiff - openssh/compress.c
Import of OpenSSH 3.2.2p1
[gssapi-openssh.git] / openssh / compress.c
index 3badbf452da28c21c6f8f33a29c0b1f6d63b8bd8..85a361d3a58ec282a84ad40da8f43ed4e643b4b5 100644 (file)
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: compress.c,v 1.17 2001/12/29 21:56:01 stevesk Exp $");
+RCSID("$OpenBSD: compress.c,v 1.19 2002/03/18 17:31:54 provos Exp $");
 
 #include "log.h"
 #include "buffer.h"
 #include "zlib.h"
 #include "compress.h"
 
-static z_stream incoming_stream;
-static z_stream outgoing_stream;
+z_stream incoming_stream;
+z_stream outgoing_stream;
 static int compress_init_send_called = 0;
 static int compress_init_recv_called = 0;
+static int inflate_failed = 0;
+static int deflate_failed = 0;
 
 /*
  * Initializes compression; level is compression level from 1 to 9
@@ -62,9 +64,9 @@ buffer_compress_uninit(void)
            incoming_stream.total_out, incoming_stream.total_in,
            incoming_stream.total_out == 0 ? 0.0 :
            (double) incoming_stream.total_in / incoming_stream.total_out);
-       if (compress_init_recv_called == 1)
+       if (compress_init_recv_called == 1 && inflate_failed == 0)
                inflateEnd(&incoming_stream);
-       if (compress_init_send_called == 1)
+       if (compress_init_send_called == 1 && deflate_failed == 0)
                deflateEnd(&outgoing_stream);
 }
 
@@ -106,6 +108,7 @@ buffer_compress(Buffer * input_buffer, Buffer * output_buffer)
                            sizeof(buf) - outgoing_stream.avail_out);
                        break;
                default:
+                       deflate_failed = 1;
                        fatal("buffer_compress: deflate returned %d", status);
                        /* NOTREACHED */
                }
@@ -149,6 +152,7 @@ buffer_uncompress(Buffer * input_buffer, Buffer * output_buffer)
                         */
                        return;
                default:
+                       inflate_failed = 1;
                        fatal("buffer_uncompress: inflate returned %d", status);
                        /* NOTREACHED */
                }
This page took 0.057026 seconds and 4 git commands to generate.