]> git.ipfire.org Git - thirdparty/libarchive.git/commit
Avoid mismatch between library and test crypto configuration 1437/head
authorAlex Richardson <Alexander.Richardson@cl.cam.ac.uk>
Thu, 17 Sep 2020 17:14:58 +0000 (18:14 +0100)
committerAlex Richardson <Alexander.Richardson@cl.cam.ac.uk>
Thu, 17 Sep 2020 17:14:58 +0000 (18:14 +0100)
commit0d8b61ea93fb1cd54d30d21823b0bc4d15347f2a
tree093a9c097060e9960e683dfdf0ddb2cde3ed08bc
parenta38e62314a1fc0583788b42a05c4154491ca0bdf
Avoid mismatch between library and test crypto configuration

I was investigating libarchive test failures on FreeBSD and it turns out
we get a reproducible SIGBUS for test_archive_m5, etc. Debugging this shows
that libarchive and the tests disagree when it comes to the definition of
archive_md5_ctx: libarchive assumes it's the OpenSSL type whereas the test
use the libmd type. The latter is not necessarily aligned enough to store
a pointer (16 bytes for CHERI RISC-V), so we were crashing when storing
EVP_MD_CTX* to an 8-byte-aligned archive_md5_ctx.

To avoid problems like this in the future, add a new macro to the config
header and use that to ensure that all configuration check macros have
been defined in archive_digest_private.h.
build/cmake/config.h.in
configure.ac
libarchive/archive_digest_private.h
libarchive/config_freebsd.h