Mercurial > dovecot > core-2.2
changeset 20224:b5f3dc5f5fb2
lib-dcrypt: Fix strict type-punning warning
author | Aki Tuomi <aki.tuomi@dovecot.fi> |
---|---|
date | Mon, 30 May 2016 22:33:29 +0300 |
parents | 55f039c7ce82 |
children | d7f5154677c2 |
files | src/lib-dcrypt/dcrypt-openssl.c |
diffstat | 1 files changed, 5 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-dcrypt/dcrypt-openssl.c Mon May 30 22:30:31 2016 +0300 +++ b/src/lib-dcrypt/dcrypt-openssl.c Mon May 30 22:33:29 2016 +0300 @@ -697,8 +697,10 @@ static bool dcrypt_openssl_generate_keypair(struct dcrypt_keypair *pair_r, enum dcrypt_key_type kind, unsigned int bits, const char *curve, const char **error_r) { + EVP_PKEY *pkey = NULL; if (kind == DCRYPT_KEY_RSA) { - if (dcrypt_openssl_generate_rsa_key(bits, (EVP_PKEY**)&(pair_r->priv), error_r) == 0) { + if (dcrypt_openssl_generate_rsa_key(bits, &pkey, error_r) == 0) { + pair_r->priv = (struct dcrypt_private_key*)pkey; return dcrypt_openssl_private_to_public_key(pair_r->priv, &(pair_r->pub), error_r); } else return dcrypt_openssl_error(error_r); } else if (kind == DCRYPT_KEY_EC) { @@ -708,7 +710,8 @@ *error_r = t_strdup_printf("Unknown EC curve %s", curve); return FALSE; } - if (dcrypt_openssl_generate_ec_key(nid, (EVP_PKEY**)&(pair_r->priv), error_r) == 0) { + if (dcrypt_openssl_generate_ec_key(nid, &pkey, error_r) == 0) { + pair_r->priv = (struct dcrypt_private_key*)pkey; return dcrypt_openssl_private_to_public_key(pair_r->priv, &(pair_r->pub), error_r); } else return dcrypt_openssl_error(error_r); }