bareos: master da3ca7c1

Author Committer Branch Timestamp Parent
Andre Noll Marco van Wieringen master 2013-11-13 18:27 master baac35fe Pending
Changeset Fix compilation on RHEL4.

These (very old) systems ship with openssl-0.9.7a which
defines EVP_MAX_MD_SIZE to 36, a smaller constant than bareos'
CRYPTO_DIGEST_MAX_SIZE (64). This mismatch results in the following
error on attempt to compile crypto_openssl.c:

    crypto_openssl.c:58:2: #error "EVP_MAX_MD_SIZE != CRYPTO_DIGEST_MAX_SIZE, please update src/lib/crypto.h"

The purpose of the preprocessor sanity check that causes this error is
to make sure that various arrays of length CRYPTO_DIGEST_MAX_SIZE are
large enough for all message digests. So all we actually need to check
for is that EVP_MAX_MD_SIZE is no larger than CRYPTO_DIGEST_MAX_SIZE.

Weakening the condition of the above check from "!=" to ">" turned
out to be enough to compile bareos on Red Hat Enterprise Linux 4
(using --client-only though). The resulting executable worked with
no problems.

This patch also adds a comment that explains the purpose of the check.

Signed-off-by: Marco van Wieringen <marco.van.wieringen@bareos.com>
mod - src/lib/crypto_openssl.c Diff File