From: Evan Hunt Date: Thu, 14 Sep 2017 04:18:26 +0000 (-0700) Subject: [master] clean up bufsize errors X-Git-Tag: v9.12.0b1~207 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=9b729a06b015165aacca2ed6f471eec41bef6ae1;p=thirdparty%2Fbind9.git [master] clean up bufsize errors --- diff --git a/lib/dns/name.c b/lib/dns/name.c index 46976da3729..760b8eeda9c 100644 --- a/lib/dns/name.c +++ b/lib/dns/name.c @@ -1657,7 +1657,7 @@ dns_name_tofilenametext(const dns_name_t *name, isc_boolean_t omit_final_dot, trem--; nlen--; } else { - if (trem < 3) + if (trem < 4) return (ISC_R_NOSPACE); snprintf(tdata, trem, "%%%02X", c); tdata += 3; diff --git a/lib/dns/zone.c b/lib/dns/zone.c index 23187c406fd..2936842bef9 100644 --- a/lib/dns/zone.c +++ b/lib/dns/zone.c @@ -1383,12 +1383,14 @@ dns_zone_getdbtype(dns_zone_t *zone, char ***argv, isc_mem_t *mctx) { size += strlen(zone->db_argv[i]) + 1; mem = isc_mem_allocate(mctx, size); if (mem != NULL) { + size_t remaining; tmp = mem; tmp2 = mem; tmp2 += (zone->db_argc + 1) * sizeof(char *); for (i = 0; i < zone->db_argc; i++) { + remaining = (size_t)(mem - tmp2); *tmp++ = tmp2; - strlcpy(tmp2, zone->db_argv[i], size); + strlcpy(tmp2, zone->db_argv[i], remaining); tmp2 += strlen(tmp2) + 1; } *tmp = NULL;