From c054fbc11e9beca0d45285c3e1f448c81416c5ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Ter=C3=A4s?= Date: Fri, 21 Feb 2020 09:31:21 +0200 Subject: db: fix unaligned memory access in csum_hash() --- src/database.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/database.c') diff --git a/src/database.c b/src/database.c index 2ca1286..06d1619 100644 --- a/src/database.c +++ b/src/database.c @@ -128,7 +128,9 @@ static unsigned long csum_hash(apk_blob_t csum) { /* Checksum's highest bits have the most "randomness", use that * directly as hash */ - return *(unsigned long *) csum.ptr; + if (csum.len >= sizeof(uint32_t)) + return get_unaligned32(csum.ptr); + return 0; } static const struct apk_hash_ops pkg_info_hash_ops = { -- cgit v1.2.3