From 4925fb863c89434e819ee52134a20565b59a9a12 Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Tue, 24 Aug 2010 04:29:37 -0400 Subject: [PATCH] Address of an imported symbol is not always a constant On Windows, the address of a symbol imported from a DLL is not considered a constant. Therefore, it can't be used to initialized static data. --- lib/krb5/test_pknistkdf.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/krb5/test_pknistkdf.c b/lib/krb5/test_pknistkdf.c index 6e2da54fc..33eb45ba9 100644 --- a/lib/krb5/test_pknistkdf.c +++ b/lib/krb5/test_pknistkdf.c @@ -52,7 +52,11 @@ struct testcase { } tests[] = { /* 0 */ { - &asn1_oid_id_pkinit_kdf_ah_sha1, /* AlgorithmIdentifier */ + NULL, /* AlgorithmIdentifier */ + /* == &asn1_oid_id_pkinit_kdf_ah_sha1. Addresses of exported + * symbols are not considered constant on all platforms + * (Windows). So we set it in main() below. */ + { /* Z */ 256, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" @@ -260,6 +264,8 @@ main(int argc, char **argv) if (ret) errx (1, "krb5_init_context failed: %d", ret); + tests[0].oid = &asn1_oid_id_pkinit_kdf_ah_sha1; + for (i = 0; i < sizeof(tests)/sizeof(tests[0]); i++) test_dh2key(context, i, &tests[i]); -- 2.11.4.GIT