diff --git a/lib/dns/resolver.c b/lib/dns/resolver.c index 99c4486868..bf0eab36b7 100644 --- a/lib/dns/resolver.c +++ b/lib/dns/resolver.c @@ -4936,9 +4936,10 @@ fctx_create(dns_resolver_t *res, const dns_name_t *name, dns_rdatatype_t type, isc_result_t iresult; isc_interval_t interval; unsigned int findoptions = 0; - char buf[DNS_NAME_FORMATSIZE + DNS_RDATATYPE_FORMATSIZE]; + char buf[DNS_NAME_FORMATSIZE + DNS_RDATATYPE_FORMATSIZE + 1]; char typebuf[DNS_RDATATYPE_FORMATSIZE]; isc_mem_t *mctx; + size_t p; /* * Caller must be holding the lock for bucket number 'bucketnum'. @@ -4965,8 +4966,8 @@ fctx_create(dns_resolver_t *res, const dns_name_t *name, dns_rdatatype_t type, */ dns_name_format(name, buf, sizeof(buf)); dns_rdatatype_format(type, typebuf, sizeof(typebuf)); - strlcat(buf, "/", sizeof(buf)); - strlcat(buf, typebuf, sizeof(buf)); + p = strlcat(buf, "/", sizeof(buf)); + strlcat(buf + p, typebuf, sizeof(buf)); fctx->info = isc_mem_strdup(mctx, buf); FCTXTRACE("create");