From 7941a9554fe00697c81b52051b41912966a1e36a Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Thu, 28 Feb 2019 17:00:15 +1100 Subject: [PATCH] Set 'specials' to match 'specials' in 'lib/dns/master.c' --- lib/dns/master.c | 4 ++++ lib/dns/tests/dnstest.c | 12 ++++++++++++ 2 files changed, 16 insertions(+) diff --git a/lib/dns/master.c b/lib/dns/master.c index 8c6541dfd7..80450f0fd7 100644 --- a/lib/dns/master.c +++ b/lib/dns/master.c @@ -569,6 +569,10 @@ loadctx_create(dns_masterformat_t format, isc_mem_t *mctx, if (result != ISC_R_SUCCESS) goto cleanup_inc; lctx->keep_lex = false; + /* + * If specials change update dns_test_rdatafromstring() + * in lib/dns/tests/dnstest.c. + */ memset(specials, 0, sizeof(specials)); specials[0] = 1; specials['('] = 1; diff --git a/lib/dns/tests/dnstest.c b/lib/dns/tests/dnstest.c index d6316395cd..dcaed95745 100644 --- a/lib/dns/tests/dnstest.c +++ b/lib/dns/tests/dnstest.c @@ -481,6 +481,7 @@ dns_test_rdatafromstring(dns_rdata_t *rdata, dns_rdataclass_t rdclass, dns_rdatacallbacks_t callbacks; isc_buffer_t source, target; isc_lex_t *lex = NULL; + isc_lexspecials_t specials = { 0 }; isc_result_t result; size_t length; @@ -504,6 +505,17 @@ dns_test_rdatafromstring(dns_rdata_t *rdata, dns_rdataclass_t rdclass, return (result); } + /* + * Set characters which will be treated as valid multi-line RDATA + * delimiters while reading the source string. These should match + * specials from lib/dns/master.c. + */ + specials[0] = 1; + specials['('] = 1; + specials[')'] = 1; + specials['"'] = 1; + isc_lex_setspecials(lex, specials); + /* * Point lexer at source. */