From 6db44b0158c37f2206f2c4ea7f29f5b774389e54 Mon Sep 17 00:00:00 2001 From: Justin Hibbits Date: Thu, 10 Feb 2022 09:21:36 -0600 Subject: Fix gzip compressed core dumps on big endian architectures The gzip trailer words (size and CRC) are both little-endian per the spec. MFC after: 3 days Sponsored by: Juniper Networks, Inc. --- sys/kern/subr_compressor.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sys/kern/subr_compressor.c b/sys/kern/subr_compressor.c index b202d271cfa3..74526a949437 100644 --- a/sys/kern/subr_compressor.c +++ b/sys/kern/subr_compressor.c @@ -41,6 +41,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -201,9 +202,9 @@ gz_write(void *stream, void *data, size_t len, compressor_cb_t cb, * Try to pack as much of the trailer into the * output buffer as we can. */ - ((uint32_t *)trailer)[0] = s->gz_crc; + ((uint32_t *)trailer)[0] = htole32(s->gz_crc); ((uint32_t *)trailer)[1] = - s->gz_stream.total_in; + htole32(s->gz_stream.total_in); room = MIN(sizeof(trailer), s->gz_bufsz - len); memcpy(s->gz_buffer + len, trailer, room); -- cgit v1.2.3