Index: sys/kern/subr_compressor.c =================================================================== --- sys/kern/subr_compressor.c +++ sys/kern/subr_compressor.c @@ -66,8 +66,7 @@ #ifdef GZIO -#include -#include +#include struct gz_stream { uint8_t *gz_buffer; /* output buffer */ @@ -119,7 +118,7 @@ s->gz_stream.avail_in = 0; error = deflateInit2(&s->gz_stream, level, Z_DEFLATED, -MAX_WBITS, - DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY); + 8, Z_DEFAULT_STRATEGY); if (error != 0) goto fail; @@ -141,7 +140,7 @@ s = stream; s->gz_off = 0; - s->gz_crc = ~0U; + s->gz_crc = crc32(0L, Z_NULL, 0); (void)deflateReset(&s->gz_stream); s->gz_stream.avail_out = s->gz_bufsz; @@ -153,7 +152,7 @@ hdr[0] = 0x1f; hdr[1] = 0x8b; hdr[2] = Z_DEFLATED; - hdr[9] = OS_CODE; + hdr[9] = 0x03; /* zlib's OS_CODE Unix */ s->gz_stream.next_out += hdrlen; s->gz_stream.avail_out -= hdrlen; } @@ -173,9 +172,8 @@ if (len > 0) { s->gz_stream.avail_in = len; s->gz_stream.next_in = data; - s->gz_crc = crc32_raw(data, len, s->gz_crc); - } else - s->gz_crc ^= ~0U; + s->gz_crc = crc32(s->gz_crc, data, len); + } error = 0; do {