From: Aki Tuomi Date: Tue, 14 Jun 2016 09:08:34 +0000 (+0300) Subject: dcrypt-openssl: Pass pointer safely X-Git-Tag: 2.2.25.rc1~145 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=920a34e4eb5f6f8b16ae810442851b345180366c;p=thirdparty%2Fdovecot%2Fcore.git dcrypt-openssl: Pass pointer safely --- diff --git a/src/lib-dcrypt/dcrypt-openssl.c b/src/lib-dcrypt/dcrypt-openssl.c index 743c345c08..af230ee028 100644 --- a/src/lib-dcrypt/dcrypt-openssl.c +++ b/src/lib-dcrypt/dcrypt-openssl.c @@ -1231,11 +1231,13 @@ int dcrypt_openssl_load_public_key_dovecot_v2(struct dcrypt_public_key **key_r, buffer_t tmp; size_t keylen = strlen(input[1])/2; unsigned char keybuf[keylen]; + const unsigned char *ptr; buffer_create_from_data(&tmp, keybuf, keylen); hex_to_binary(input[1], &tmp); + ptr = keybuf; EVP_PKEY *pkey = EVP_PKEY_new(); - if (d2i_PUBKEY(&pkey, (const unsigned char**)(tmp.data), tmp.used)==NULL) { + if (d2i_PUBKEY(&pkey, &ptr, keylen)==NULL) { EVP_PKEY_free(pkey); dcrypt_openssl_error(error_r); return -1;