From 888ec4e0d407a9333017d6997a2be81a69658e1f Mon Sep 17 00:00:00 2001 From: Matthijs Mekking Date: Tue, 17 May 2022 12:02:43 +0200 Subject: [PATCH] Require valid key for dst_key functions Make sure that the key structure is valid when calling the following functions: - dst_key_setexternal - dst_key_isexternal - dst_key_setmodified - dst_key_ismodified --- lib/dns/dst_api.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/dns/dst_api.c b/lib/dns/dst_api.c index 237ddc0515..39fcbf1fa6 100644 --- a/lib/dns/dst_api.c +++ b/lib/dns/dst_api.c @@ -461,16 +461,22 @@ dst_key_tofile(const dst_key_t *key, int type, const char *directory) { void dst_key_setexternal(dst_key_t *key, bool value) { + REQUIRE(VALID_KEY(key)); + key->external = value; } bool dst_key_isexternal(dst_key_t *key) { + REQUIRE(VALID_KEY(key)); + return (key->external); } void dst_key_setmodified(dst_key_t *key, bool value) { + REQUIRE(VALID_KEY(key)); + isc_mutex_lock(&key->mdlock); key->modified = value; isc_mutex_unlock(&key->mdlock); @@ -480,6 +486,8 @@ bool dst_key_ismodified(const dst_key_t *key) { bool modified; + REQUIRE(VALID_KEY(key)); + isc_mutex_lock(&(((dst_key_t *)key)->mdlock)); modified = key->modified; isc_mutex_unlock(&(((dst_key_t *)key)->mdlock));