From: Mark Andrews Date: Wed, 4 Mar 2020 02:02:50 +0000 (+1100) Subject: Pass NUL terminated buffer name to cfg_parse_buffer X-Git-Tag: v9.17.1~47^2~2 X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=91efc587b22339e70cd2a4a11b6198a460b66a35;p=thirdparty%2Fbind9.git Pass NUL terminated buffer name to cfg_parse_buffer --- diff --git a/bin/named/server.c b/bin/named/server.c index ee23f102d2b..d1919590663 100644 --- a/bin/named/server.c +++ b/bin/named/server.c @@ -7779,6 +7779,7 @@ data_to_cfg(dns_view_t *view, MDB_val *key, MDB_val *data, isc_buffer_t **text, const char *zone_config; size_t zone_config_len; cfg_obj_t *zoneconf = NULL; + char bufname[DNS_NAME_FORMATSIZE]; REQUIRE(view != NULL); REQUIRE(key != NULL); @@ -7813,8 +7814,11 @@ data_to_cfg(dns_view_t *view, MDB_val *key, MDB_val *data, isc_buffer_t **text, CHECK(putmem(text, (const void *)zone_config, zone_config_len)); CHECK(putstr(text, ";\n")); + snprintf(bufname, sizeof(bufname), "%.*s", (int)zone_name_len, + zone_name); + cfg_parser_reset(named_g_addparser); - result = cfg_parse_buffer(named_g_addparser, *text, zone_name, 0, + result = cfg_parse_buffer(named_g_addparser, *text, bufname, 0, &cfg_type_addzoneconf, 0, &zoneconf); if (result != ISC_R_SUCCESS) { isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,