]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Simplify error handling
authorOndřej Surý <ondrej@isc.org>
Fri, 7 Feb 2020 13:21:29 +0000 (14:21 +0100)
committerOndřej Surý <ondrej@sury.org>
Fri, 1 May 2020 08:36:45 +0000 (10:36 +0200)
lib/dns/opensslrsa_link.c

index 54542f87217a304b874cdedced8a3457d6054132..d5d6cc659275cb03f18ee41eafdd5b32dfda55de 100644 (file)
@@ -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) {