]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Pass NUL terminated buffer name to cfg_parse_buffer
authorMark Andrews <marka@isc.org>
Wed, 4 Mar 2020 02:02:50 +0000 (13:02 +1100)
committerMark Andrews <marka@isc.org>
Fri, 13 Mar 2020 02:38:56 +0000 (13:38 +1100)
bin/named/server.c

index ee23f102d2bac093ece4a6b5d44bc17b1292c45e..d1919590663b1329f069f963c2d713c1f41fe090 100644 (file)
@@ -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,