From: Matthijs Mekking Date: Tue, 17 May 2022 10:02:43 +0000 (+0200) Subject: Require valid key for dst_key functions X-Git-Tag: v9.19.2~21^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=888ec4e0d407a9333017d6997a2be81a69658e1f;p=thirdparty%2Fbind9.git 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 --- diff --git a/lib/dns/dst_api.c b/lib/dns/dst_api.c index 237ddc05153..39fcbf1fa67 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));