summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2016-03-11 11:38:14 +0100
committerRichard Levitte <levitte@openssl.org>2016-03-11 14:48:26 +0100
commit39dbb990a06753c0ab74d56098218d41780a9053 (patch)
tree0bf45475db0fd39ebc3987286fbcfdedc4a877ac
parent773fd0bad487fe8f1cf722ca14cec2c4a2da3e21 (diff)
Avoid getting unresolved referense to bn_expand2 in test/bntest.c
Issue identified on Solaris by Erik Forsberg <erik@efca.com> Reviewed-by: Rich Salz <rsalz@openssl.org>
-rw-r--r--test/bntest.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/test/bntest.c b/test/bntest.c
index 082cf4cba0..53769aad60 100644
--- a/test/bntest.c
+++ b/test/bntest.c
@@ -80,6 +80,19 @@
#include <openssl/x509.h>
#include <openssl/err.h>
+/*
+ * In bn_lcl.h, bn_expand() is defined as a static ossl_inline function.
+ * This is fine in itself, it will end up as an unused static function in
+ * the worst case. However, it referenses bn_expand2(), which is a private
+ * function in libcrypto and therefore unavailable on some systems. This
+ * may result in a linker error because of unresolved symbols.
+ *
+ * To avoid this, we define a dummy variant of bn_expand2() here, and to
+ * avoid possible clashes with libcrypto, we rename it first, using a macro.
+ */
+#define bn_expand2 dummy_bn_expand2
+static BIGNUM *bn_expand2(BIGNUM *b, int words) { return NULL; }
+
#include "../crypto/bn/bn_lcl.h"
static const int num0 = 100; /* number of tests */