Browse Source

step

preview
Stefan Bühler 4 years ago
parent
commit
534272fbc9
  1. 2
      lib/dnsbox-base/src/records/powerdns_tests.rs
  2. 4
      lib/dnsbox-base/src/ser/text/quoted.rs

2
lib/dnsbox-base/src/records/powerdns_tests.rs

@ -828,6 +828,8 @@ fn test_invalid_data_checks() {
check_invalid_zone(types::A, "10..0.1"); // empty octet
check_invalid_wire(types::A, b"\xca\xec\x00"); // truncated wire value
check_invalid_zone(types::A, "127.0.0.1 evil data"); // trailing garbage
check_invalid_zone(types::TXT, r#"""v=spf1 -all"#); // quoted and unquoted words need to be space separated
check_invalid_zone(types::TXT, r#"""v=spf1 -all"""#); // quoted and unquoted words need to be space separated
check_invalid_zone(types::AAAA, "23:00"); // time when this test was written
check_invalid_zone(types::AAAA, "23:00::15::43"); // double compression
check_invalid_zone(types::AAAA, "2a23:00::15::"); // ditto

4
lib/dnsbox-base/src/ser/text/quoted.rs

@ -143,6 +143,10 @@ impl<'a, 'b: 'a> Iterator for UnquoteIterator<'a, 'b> {
}
if raw[self.pos] == b'"' {
if self.quoted {
// either followed by end-of-string or a whitespace
if self.pos+1 < raw.len() && !is_ascii_whitespace(raw[self.pos+1]) {
return self.err("quote in the middle of quoted string");
}
// eat terminating quote
// pos+1 is obviously a good utf-8 boundary
*self.data = self.data[self.pos+1..].trim_left();

Loading…
Cancel
Save