when decompressing zlib compressed packets, use Z_SYNC_FLUSH instead
authordjm <djm@openbsd.org>
Mon, 17 Jan 2022 22:56:04 +0000 (22:56 +0000)
committerdjm <djm@openbsd.org>
Mon, 17 Jan 2022 22:56:04 +0000 (22:56 +0000)
of Z_PARTIAL_FLUSH as the latter is not actually specified as a valid
mode for inflate(). There should be no practical change in behaviour
as the compression side ensures a flush that should make all data
available to the receiver in all cases.

repoted by lamm AT ibm.com via bz3372; ok markus

usr.bin/ssh/packet.c

index 3af35f0..fa66b6d 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: packet.c,v 1.304 2022/01/01 01:55:30 jsg Exp $ */
+/* $OpenBSD: packet.c,v 1.305 2022/01/17 22:56:04 djm Exp $ */
 /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -774,7 +774,7 @@ uncompress_buffer(struct ssh *ssh, struct sshbuf *in, struct sshbuf *out)
                ssh->state->compression_in_stream.avail_out = sizeof(buf);
 
                status = inflate(&ssh->state->compression_in_stream,
-                   Z_PARTIAL_FLUSH);
+                   Z_SYNC_FLUSH);
                switch (status) {
                case Z_OK:
                        if ((r = sshbuf_put(out, buf, sizeof(buf) -