From: Jamie (Bear) Murphy Date: Wed, 16 Jul 2025 14:03:30 +0000 (+0100) Subject: strip semicolon from import files X-Git-Tag: rec-5.4.0-alpha0~23^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0ddf871f5a44372fb5b34b9274863a36ea9d5743;p=thirdparty%2Fpdns.git strip semicolon from import files strip semicolon from import files --- diff --git a/pdns/zoneparser-tng.cc b/pdns/zoneparser-tng.cc index a211b04455..c15e03ec64 100644 --- a/pdns/zoneparser-tng.cc +++ b/pdns/zoneparser-tng.cc @@ -368,8 +368,14 @@ bool ZoneParserTNG::get(DNSResourceRecord& rr, std::string* comment) } else if(pdns_iequals(command,"$INCLUDE") && d_parts.size() > 1 && d_fromfile) { string fname=unquotify(makeString(d_line, d_parts[1])); - if(!fname.empty() && fname[0]!='/' && !d_reldir.empty()) - fname=d_reldir+"/"+fname; + // Find the first semicolon and remove everything after it, including the semicolon + size_t semicolon_pos = fname.find(';'); + if (semicolon_pos != string::npos) { + fname.resize(semicolon_pos); + } + if (!fname.empty() && fname[0] != '/' && !d_reldir.empty()) { + fname = d_reldir + "/" + fname; + } stackFile(fname); } else if(pdns_iequals(command, "$ORIGIN") && d_parts.size() > 1) {