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)
This commit is contained in:
Viktor Dukhovni 2018-02-21 08:25:49 -05:00 committed by Rich Salz
parent 405988f2cc
commit 649cfb5cbb

View file

@ -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;
}