#define NEGATIVE(r) (((r)->attributes & DNS_RDATASETATTR_NEGATIVE) != 0)
#ifdef ENABLE_AFL
-static isc_boolean_t fuzzing_resolver = ISC_FALSE;
+isc_boolean_t dns_fuzzing_resolver = ISC_FALSE;
void dns_resolver_setfuzzing() {
- fuzzing_resolver = ISC_TRUE;
+ dns_fuzzing_resolver = ISC_TRUE;
}
#endif
isc_sockaddr_t *sa;
#ifdef ENABLE_AFL
- if (fuzzing_resolver)
+ if (dns_fuzzing_resolver)
return;
#endif
if (bad_edns(fctx, address))
isc_boolean_t all_bad = ISC_TRUE;
#ifdef ENABLE_AFL
- if (fuzzing_resolver)
+ if (dns_fuzzing_resolver)
return ISC_FALSE;
#endif
isc_sockaddr_t *address = &addrinfo->sockaddr;
#ifdef ENABLE_AFL
- if (fuzzing_resolver)
+ if (dns_fuzzing_resolver)
return;
#endif
no_response, ISC_FALSE);
#ifdef ENABLE_AFL
- if (fuzzing_resolver && (keep_trying || resend)) {
+ if (dns_fuzzing_resolver && (keep_trying || resend)) {
fctx_done(fctx, DNS_R_SERVFAIL, __LINE__);
return;
} else
dns_rdatatype_t type, isc_time_t *expire)
{
#ifdef ENABLE_AFL
- if (!fuzzing_resolver)
+ if (!dns_fuzzing_resolver)
#endif
{
(void) dns_badcache_add(resolver->badcache, name, type,
#define ZONEDB_UNLOCK(l, t) UNLOCK(l)
#endif
+#ifdef ENABLE_AFL
+extern isc_boolean_t dns_fuzzing_resolver;
+#endif
+
struct dns_zone {
/* Unlocked */
unsigned int magic;
* as the latter will have a lower trust level due to not being
* validated until keyfetch_done() is called.
*/
+
+#ifdef ENABLE_AFL
+ if (dns_fuzzing_resolver == ISC_FALSE) {
+#endif
result = dns_resolver_createfetch(zone->view->resolver,
kname, dns_rdatatype_dnskey,
NULL, NULL, NULL,
&kfetch->dnskeyset,
&kfetch->dnskeysigset,
&kfetch->fetch);
+#ifdef ENABLE_AFL
+ } else {
+ result = ISC_R_FAILURE;
+ }
+#endif
if (result == ISC_R_SUCCESS)
fetching = ISC_TRUE;
else {