Module Name:    src
Committed By:   martin
Date:           Wed Nov 22 15:11:26 UTC 2017

Modified Files:
        src/common/dist/zlib [netbsd-8]: inflate.c

Log Message:
Pull up following revision(s) (requested by tsutsui in ticket #375):
        common/dist/zlib/inflate.c: revision 1.6
Restore a local change (in rev1.4) that was lost on zlib 1.12.10 merge.
The rev 1.4 changelog:
Disable a sanity check output buffer != NULL in _STANDALONE case.
Some kernels are loaded at address 0x0 by bootloaders and
output buffer address could be zero in such case.
Fixes "read text" errors on loading install floppy of NetBSD/news68k 4.0,
reported by KIYOHARA Takashi on port-news68k.
This problem may also affect other m68k ports which use a gzipped install
kernel and kernel text address located at PA 0x0.
Should be pulled up to netbsd-8.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.5.6.1 src/common/dist/zlib/inflate.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/common/dist/zlib/inflate.c
diff -u src/common/dist/zlib/inflate.c:1.5 src/common/dist/zlib/inflate.c:1.5.6.1
--- src/common/dist/zlib/inflate.c:1.5	Tue Jan 10 01:27:41 2017
+++ src/common/dist/zlib/inflate.c	Wed Nov 22 15:11:26 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: inflate.c,v 1.5 2017/01/10 01:27:41 christos Exp $	*/
+/*	$NetBSD: inflate.c,v 1.5.6.1 2017/11/22 15:11:26 martin Exp $	*/
 
 /* inflate.c -- zlib decompression
  * Copyright (C) 1995-2016 Mark Adler
@@ -644,9 +644,16 @@ int flush;
     static const unsigned short order[19] = /* permutation of code lengths */
         {16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15};
 
+#if defined(__NetBSD__) && defined(_STANDALONE)
+    /* Some kernels are loaded at address 0x0 so strm->next_out could be NULL */
+    if (inflateStateCheck(strm) ||
+        (strm->next_in == Z_NULL && strm->avail_in != 0))
+        return Z_STREAM_ERROR;
+#else
     if (inflateStateCheck(strm) || strm->next_out == Z_NULL ||
         (strm->next_in == Z_NULL && strm->avail_in != 0))
         return Z_STREAM_ERROR;
+#endif
 
     state = (struct inflate_state FAR *)strm->state;
     if (state->mode == TYPE) state->mode = TYPEDO;      /* skip check */

Reply via email to