From: Lennart Poettering Date: Tue, 16 Jul 2019 13:22:26 +0000 (+0200) Subject: journal: properly read unaligned le64 integers X-Git-Tag: v243~228^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4094c4bfb770f5e3045cc6da88b9b8de74aa027d;p=platform%2Fupstream%2Fsystemd.git journal: properly read unaligned le64 integers Fixes: #13051 Replaces: #13064 --- diff --git a/src/journal/compress.c b/src/journal/compress.c index 7a79e56..bfb75ae 100644 --- a/src/journal/compress.c +++ b/src/journal/compress.c @@ -26,6 +26,7 @@ #include "sparse-endian.h" #include "string-table.h" #include "string-util.h" +#include "unaligned.h" #include "util.h" #if HAVE_LZ4 @@ -101,7 +102,7 @@ int compress_blob_lz4(const void *src, uint64_t src_size, if (r <= 0) return -ENOBUFS; - *(le64_t*) dst = htole64(src_size); + unaligned_write_le64(dst, src_size); *dst_size = r + 8; return 0; @@ -187,8 +188,8 @@ int decompress_blob_lz4(const void *src, uint64_t src_size, if (src_size <= 8) return -EBADMSG; - size = le64toh( *(le64_t*)src ); - if (size < 0 || (unsigned) size != le64toh(*(le64_t*)src)) + size = unaligned_read_le64(src); + if (size < 0 || (unsigned) size != unaligned_read_le64(src)) return -EFBIG; if ((size_t) size > *dst_alloc_size) { out = realloc(*dst, size);