diff --git a/src/knot/conf/base.c b/src/knot/conf/base.c index 9a0a655..e4721ad 100644 --- a/src/knot/conf/base.c +++ b/src/knot/conf/base.c @@ -101,6 +101,10 @@ void conf_refresh_hostname( free(conf->hostname); conf->hostname = sockaddr_hostname(); + if (conf->hostname == NULL) { + // Empty hostname fallback, NULL cannot be passed to strlen! + conf->hostname = strdup(""); + } } static void init_cache( @@ -206,7 +210,7 @@ int conf_new( // Cache the current hostname. if (!(flags & CONF_FNOHOSTNAME)) { - out->hostname = sockaddr_hostname(); + conf_refresh_hostname(out); } // Initialize cached values. diff --git a/src/knot/modules/dnstap.c b/src/knot/modules/dnstap.c index 890663d..b60c1ca 100644 --- a/src/knot/modules/dnstap.c +++ b/src/knot/modules/dnstap.c @@ -241,7 +241,7 @@ int dnstap_load(struct query_plan *plan, struct query_module *self, } else { ctx->identity = sockaddr_hostname(); } - ctx->identity_len = strlen(ctx->identity); + ctx->identity_len = (ctx->identity != NULL) ? strlen(ctx->identity) : 0; // Set version. val = conf_mod_get(self->config, MOD_VERSION, self->id);