]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
signpipe stumbles over interrupted rrsets
authorKees Monshouwer <mind04@monshouwer.org>
Fri, 7 Apr 2017 20:51:06 +0000 (22:51 +0200)
committermind04 <mind04@monshouwer.org>
Tue, 11 Apr 2017 08:54:55 +0000 (10:54 +0200)
pdns/tcpreceiver.cc
regression-tests.nobackend/tinydns-data-check/expected_result
regression-tests/tests/ent-axfr/expected_result
regression-tests/tests/ent-axfr/expected_result.nsec3
regression-tests/tests/ent-axfr/expected_result.nsec3-optout
regression-tests/zones/test.com

index 6f718717215741dea8890a3635acf6bb1c129fd2..e2540935a257ee7c7d6e85b8d57fc80f58fc5a4f 100644 (file)
@@ -809,6 +809,11 @@ int TCPNameserver::doAXFR(const DNSName &target, shared_ptr<DNSPacket> q, int ou
     }
   }
 
+  // Group records by name and type, signpipe stumbles over interrupted rrsets
+  sort(zrrs.begin(), zrrs.end(), [](const DNSZoneRecord& a, const DNSZoneRecord& b) {
+    return tie(a.dr.d_name, a.dr.d_type) < tie(b.dr.d_name, b.dr.d_type);
+  });
+
   if(rectify) {
     // set auth
     for(DNSZoneRecord &zrr :  zrrs) {
index efb87fbd654e21ce07087e433d65c8e379d77fa0..52547b5dab993ad72ea5a80731a32475a03760ae 100644 (file)
@@ -1,5 +1,5 @@
 17a1219ca79020c1c67ad173a291d3c8  ../regression-tests/zones/example.com
-b4feb02bd50f7b78cd5c40c7a560019c  ../regression-tests/zones/test.com
+fe49d2784b1bcc3b91ddd5619f0b6cc1  ../regression-tests/zones/test.com
 005b3381db2a7dc70b690484f6ab7770  ../regression-tests/zones/test.dyndns
 0861783f9f83acd9044278cda2528ee2  ../regression-tests/zones/wtest.com
 42b442de632686e94bde75acf66cf524  ../regression-tests/zones/nztest.com
index f24685c7592cb60c2e301c04bb808571a6afc9ed..6d5692c5114ccb7688364fef1bd8f67b042750f9 100644 (file)
@@ -10,7 +10,8 @@ blah.test.com.        86400   IN      NSEC    b.c.test.com. NS RRSIG NSEC
 counter.test.com.      86400   IN      NSEC    d.test.com. A RRSIG NSEC
 d.test.com.    86400   IN      NSEC    _double._tcp.dc.test.com. DNAME RRSIG NSEC
 enum.test.com. 86400   IN      NSEC    hightxt.test.com. NAPTR RRSIG NSEC
-hightxt.test.com.      86400   IN      NSEC    ns1.test.com. TXT RRSIG NSEC SPF
+hightxt.test.com.      86400   IN      NSEC    interrupted-rrset.test.com. TXT RRSIG NSEC SPF
+interrupted-rrset.test.com.    86400   IN      NSEC    ns1.test.com. A TXT RRSIG NSEC
 ns1.test.com.  86400   IN      NSEC    ns2.test.com. A RRSIG NSEC
 ns2.test.com.  86400   IN      NSEC    server1.test.com. A RRSIG NSEC
 server1.test.com.      86400   IN      NSEC    *.test.test.com. A RP RRSIG NSEC
index 10c17297903e800514bc1364cb8c98f08047b163..b92a0b31344a67231f39958fe089db174b5f3b6b 100644 (file)
@@ -13,7 +13,8 @@ aovp95mr44hqefrqus6nomsd944bm3vb.test.com.    86400   IN      NSEC3   1 0 1 abcd B022O9DKSAJ
 b022o9dksaj737fh77e7kqqtj3om56ki.test.com.     86400   IN      NSEC3   1 0 1 abcd DAFC69CV5N2TFCF6OVBVTV94DRGMQJO5
 dafc69cv5n2tfcf6ovbvtv94drgmqjo5.test.com.     86400   IN      NSEC3   1 0 1 abcd DE592K86U3HEVDJ57JPBT7J5KV7DOO78 TXT RRSIG
 de592k86u3hevdj57jpbt7j5kv7doo78.test.com.     86400   IN      NSEC3   1 0 1 abcd EBAN51BJGUGORB20UNP5PEEC7S5D2EKA NS
-eban51bjgugorb20unp5peec7s5d2eka.test.com.     86400   IN      NSEC3   1 0 1 abcd H5855RVON2AASM8QV1NK49I1B2MKBEJP SRV RRSIG
+eban51bjgugorb20unp5peec7s5d2eka.test.com.     86400   IN      NSEC3   1 0 1 abcd ENG6HBK77VJMQFVG6S04HAJOA2201LII SRV RRSIG
+eng6hbk77vjmqfvg6s04hajoa2201lii.test.com.     86400   IN      NSEC3   1 0 1 abcd H5855RVON2AASM8QV1NK49I1B2MKBEJP A TXT RRSIG
 h5855rvon2aasm8qv1nk49i1b2mkbejp.test.com.     86400   IN      NSEC3   1 0 1 abcd IAI9HIN25MEH689R5V5GTIFK8OM5DI0E A RRSIG
 iai9hin25meh689r5v5gtifk8om5di0e.test.com.     86400   IN      NSEC3   1 0 1 abcd IGF4M7OTECACH14P0A6INGI7DBUAS5B2 A RRSIG
 igf4m7otecach14p0a6ingi7dbuas5b2.test.com.     86400   IN      NSEC3   1 0 1 abcd N5RSKFSBG0UK5SSPJ595R6546HKK5VK1 A RP RRSIG
index e83ea26554e51e422af5f1ca9503898035ab7e3e..07ea72cf83e631b9e32b9108e69176581b4328b9 100644 (file)
@@ -12,7 +12,8 @@ a5labagjjevr86gh0hf3jg7nufhga5ar.test.com.    86400   IN      NSEC3   1 1 1 abcd AOVP95MR44H
 aovp95mr44hqefrqus6nomsd944bm3vb.test.com.     86400   IN      NSEC3   1 1 1 abcd B022O9DKSAJ737FH77E7KQQTJ3OM56KI A RRSIG
 b022o9dksaj737fh77e7kqqtj3om56ki.test.com.     86400   IN      NSEC3   1 1 1 abcd DAFC69CV5N2TFCF6OVBVTV94DRGMQJO5
 dafc69cv5n2tfcf6ovbvtv94drgmqjo5.test.com.     86400   IN      NSEC3   1 1 1 abcd EBAN51BJGUGORB20UNP5PEEC7S5D2EKA TXT RRSIG
-eban51bjgugorb20unp5peec7s5d2eka.test.com.     86400   IN      NSEC3   1 1 1 abcd H5855RVON2AASM8QV1NK49I1B2MKBEJP SRV RRSIG
+eban51bjgugorb20unp5peec7s5d2eka.test.com.     86400   IN      NSEC3   1 1 1 abcd ENG6HBK77VJMQFVG6S04HAJOA2201LII SRV RRSIG
+eng6hbk77vjmqfvg6s04hajoa2201lii.test.com.     86400   IN      NSEC3   1 1 1 abcd H5855RVON2AASM8QV1NK49I1B2MKBEJP A TXT RRSIG
 h5855rvon2aasm8qv1nk49i1b2mkbejp.test.com.     86400   IN      NSEC3   1 1 1 abcd IAI9HIN25MEH689R5V5GTIFK8OM5DI0E A RRSIG
 iai9hin25meh689r5v5gtifk8om5di0e.test.com.     86400   IN      NSEC3   1 1 1 abcd IGF4M7OTECACH14P0A6INGI7DBUAS5B2 A RRSIG
 igf4m7otecach14p0a6ingi7dbuas5b2.test.com.     86400   IN      NSEC3   1 1 1 abcd N5RSKFSBG0UK5SSPJ595R6546HKK5VK1 A RP RRSIG
index bdfcbe55467d4a3a821f9c507da9ca082f96b587..d040d06edfa85125b3083bd22afc25b4dad07126 100644 (file)
@@ -38,3 +38,6 @@ hightxt               IN      TXT     "v=spf1 mx ip4:78.46.192.210 –all"
 hightxt                IN      SPF     "v=spf1 mx ip4:78.46.192.210 –all"
 d              IN      DNAME   d2.test2.com.
 urc65226       IN      TYPE65226 \# 3 414243
+interrupted-rrset      IN      A       1.1.1.1
+interrupted-rrset      IN      TXT     "check AXFR signpipe"
+interrupted-rrset      IN      A       2.2.2.2