From: Ondřej Surý Date: Fri, 7 Feb 2020 13:21:29 +0000 (+0100) Subject: Simplify error handling X-Git-Tag: v9.17.2~102^2 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=064d8b7a6db18a9c9c9db1cdf99d5914ebfbffab;p=thirdparty%2Fbind9.git Simplify error handling --- diff --git a/lib/dns/opensslrsa_link.c b/lib/dns/opensslrsa_link.c index 54542f87217..d5d6cc65927 100644 --- a/lib/dns/opensslrsa_link.c +++ b/lib/dns/opensslrsa_link.c @@ -708,6 +708,11 @@ opensslrsa_tofile(const dst_key_t *key, const char *directory) { const BIGNUM *p = NULL, *q = NULL; const BIGNUM *dmp1 = NULL, *dmq1 = NULL, *iqmp = NULL; + if (key->external) { + priv.nelements = 0; + return (dst__privstruct_writefile(key, &priv, directory)); + } + if (key->keydata.pkey == NULL) { return (DST_R_NULLKEY); } @@ -721,12 +726,6 @@ opensslrsa_tofile(const dst_key_t *key, const char *directory) { RSA_get0_factors(rsa, &p, &q); RSA_get0_crt_params(rsa, &dmp1, &dmq1, &iqmp); - if (key->external) { - priv.nelements = 0; - result = dst__privstruct_writefile(key, &priv, directory); - goto fail; - } - for (i = 0; i < 8; i++) { bufs[i] = isc_mem_get(key->mctx, BN_num_bytes(n)); } @@ -811,7 +810,7 @@ opensslrsa_tofile(const dst_key_t *key, const char *directory) { priv.nelements = i; result = dst__privstruct_writefile(key, &priv, directory); -fail: + RSA_free(rsa); for (i = 0; i < 8; i++) { if (bufs[i] == NULL) {