From 649cfb5cbb78e3c4c91ceb65fad2a4daad6047dd Mon Sep 17 00:00:00 2001 From: Viktor Dukhovni Date: Wed, 21 Feb 2018 08:25:49 -0500 Subject: [PATCH] Use malloc to avoid alignment problems. Thanks to Norm Green for reporting this issue. Signed-off-by: Rich Salz Reviewed-by: Richard Levitte Reviewed-by: Rich Salz (Merged from https://github.com/openssl/openssl/pull/5423) --- test/asn1_encode_test.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/test/asn1_encode_test.c b/test/asn1_encode_test.c index e9f459ad65..1ae0519935 100644 --- a/test/asn1_encode_test.c +++ b/test/asn1_encode_test.c @@ -709,15 +709,18 @@ static int do_encode_custom(EXPECTED *input, static int do_print_item(const TEST_PACKAGE *package) { #define DATA_BUF_SIZE 256 - unsigned char buf[DATA_BUF_SIZE]; const ASN1_ITEM *i = ASN1_ITEM_ptr(package->asn1_type); - ASN1_VALUE *o = (ASN1_VALUE *)&buf; + ASN1_VALUE *o; int ret; OPENSSL_assert(package->encode_expectations_elem_size <= DATA_BUF_SIZE); + if ((o = OPENSSL_malloc(DATA_BUF_SIZE)) == NULL) + return 0; - (void)RAND_bytes(buf, (int)package->encode_expectations_elem_size); + (void)RAND_bytes((unsigned char*)o, + (int)package->encode_expectations_elem_size); ret = ASN1_item_print(bio_err, o, 0, i, NULL); + OPENSSL_free(o); return ret; } -- 2.25.1