]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Make sure null atributes are never used
authorPetr Menšík <pemensik@redhat.com>
Fri, 4 Jan 2019 19:28:35 +0000 (20:28 +0100)
committerMark Andrews <marka@isc.org>
Wed, 16 Jan 2019 20:48:37 +0000 (15:48 -0500)
Add INSIST to pubattr fetching where null might occur in therory. Make
sure null is never dereferenced.

lib/dns/pkcs11ecdsa_link.c
lib/dns/pkcs11rsa_link.c

index 6bc5e25b184bd007d71b6909b1682c5eff5c4d56..1f23ac927ef2f6742d09255a3572f3246d928dae 100644 (file)
@@ -837,6 +837,7 @@ pkcs11ecdsa_fetch(dst_key_t *key, const char *engine, const char *label,
 
        attr->type = CKA_EC_PARAMS;
        pubattr = pk11_attribute_bytype(pubec, CKA_EC_PARAMS);
+       INSIST(pubattr != NULL);
        attr->pValue = isc_mem_get(key->mctx, pubattr->ulValueLen);
        if (attr->pValue == NULL)
                DST_RET(ISC_R_NOMEMORY);
@@ -846,6 +847,7 @@ pkcs11ecdsa_fetch(dst_key_t *key, const char *engine, const char *label,
 
        attr->type = CKA_EC_POINT;
        pubattr = pk11_attribute_bytype(pubec, CKA_EC_POINT);
+       INSIST(pubattr != NULL);
        attr->pValue = isc_mem_get(key->mctx, pubattr->ulValueLen);
        if (attr->pValue == NULL)
                DST_RET(ISC_R_NOMEMORY);
index 25b3897448c6fd447b6bee962242f21f756a868b..0473acd72f1d3e4c930d062bd805f9d7d5167cf4 100644 (file)
@@ -1673,6 +1673,7 @@ pkcs11rsa_fetch(dst_key_t *key, const char *engine, const char *label,
 
        attr->type = CKA_MODULUS;
        pubattr = pk11_attribute_bytype(pubrsa, CKA_MODULUS);
+       INSIST(pubattr != NULL);
        attr->pValue = isc_mem_get(key->mctx, pubattr->ulValueLen);
        if (attr->pValue == NULL)
                DST_RET(ISC_R_NOMEMORY);
@@ -1682,6 +1683,7 @@ pkcs11rsa_fetch(dst_key_t *key, const char *engine, const char *label,
 
        attr->type = CKA_PUBLIC_EXPONENT;
        pubattr = pk11_attribute_bytype(pubrsa, CKA_PUBLIC_EXPONENT);
+       INSIST(pubattr != NULL);
        attr->pValue = isc_mem_get(key->mctx, pubattr->ulValueLen);
        if (attr->pValue == NULL)
                DST_RET(ISC_R_NOMEMORY);