summaryrefslogtreecommitdiffstats
path: root/test/asn1_encode_test.c
diff options
context:
space:
mode:
authorViktor Dukhovni <openssl-users@dukhovni.org>2018-02-21 08:25:49 -0500
committerRich Salz <rsalz@openssl.org>2018-02-21 08:25:49 -0500
commit649cfb5cbb78e3c4c91ceb65fad2a4daad6047dd (patch)
tree0ebdfde9314ee84534bf7e88159d733a14917994 /test/asn1_encode_test.c
parent405988f2cca816fdfdf8ad62b1285dcf06822e85 (diff)
Use malloc to avoid alignment problems.
Thanks to Norm Green for reporting this issue. Signed-off-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5423)
Diffstat (limited to 'test/asn1_encode_test.c')
-rw-r--r--test/asn1_encode_test.c9
1 files 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;
}