summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGarming Sam <garming@catalyst.net.nz>2016-01-06 14:12:35 +1300
committerKarolin Seeger <kseeger@samba.org>2016-02-24 11:43:41 +0100
commit3196b9e51252f6e59768cebc71d707c596ffb82f (patch)
treecbe98b4027b074ba089746d4902d71a56d7b8a27
parent1c69840ef5e50e8f05be1b615c52cbe4cc309c96 (diff)
downloadsamba-3196b9e51252f6e59768cebc71d707c596ffb82f.tar.gz
CVE-2016-0771: tests/dns: Modify dns tests to match new IDL
BUG: https://bugzilla.samba.org/show_bug.cgi?id=11128 BUG: https://bugzilla.samba.org/show_bug.cgi?id=11686 Signed-off-by: Garming Sam <garming@catalyst.net.nz> Reviewed-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
-rw-r--r--python/samba/tests/dns.py38
1 files changed, 20 insertions, 18 deletions
diff --git a/python/samba/tests/dns.py b/python/samba/tests/dns.py
index 04ac3567ed7..6f2bbb5a8d3 100644
--- a/python/samba/tests/dns.py
+++ b/python/samba/tests/dns.py
@@ -20,12 +20,19 @@ import struct
import random
import socket
import samba.ndr as ndr
-import samba.dcerpc.dns as dns
from samba import credentials, param
from samba.tests import TestCase
-from samba.dcerpc import dnsp, dnsserver
+from samba.dcerpc import dns, dnsp, dnsserver
+def make_txt_record(records):
+ rdata_txt = dns.txt_record()
+ s_list = dnsp.string_list()
+ s_list.count = len(records)
+ s_list.str = records
+ rdata_txt.txt = s_list
+ return rdata_txt
+
class DNSTest(TestCase):
def errstr(self, errcode):
@@ -411,8 +418,7 @@ class TestDNSUpdates(DNSTest):
r.rr_class = dns.DNS_QCLASS_IN
r.ttl = 900
r.length = 0xffff
- rdata = dns.txt_record()
- rdata.txt = '"This is a test"'
+ rdata = make_txt_record(['"This is a test"'])
r.rdata = rdata
updates.append(r)
p.nscount = len(updates)
@@ -432,7 +438,7 @@ class TestDNSUpdates(DNSTest):
response = self.dns_transaction_udp(p)
self.assert_dns_rcode_equals(response, dns.DNS_RCODE_OK)
self.assertEquals(response.ancount, 1)
- self.assertEquals(response.answers[0].rdata.txt, '"This is a test"')
+ self.assertEquals(response.answers[0].rdata.txt.str[0], '"This is a test"')
def test_update_add_two_txt_records(self):
"test adding two txt records works"
@@ -452,8 +458,8 @@ class TestDNSUpdates(DNSTest):
r.rr_class = dns.DNS_QCLASS_IN
r.ttl = 900
r.length = 0xffff
- rdata = dns.txt_record()
- rdata.txt = '"This is a test" "and this is a test, too"'
+ rdata = make_txt_record(['"This is a test"',
+ '"and this is a test, too"'])
r.rdata = rdata
updates.append(r)
p.nscount = len(updates)
@@ -473,7 +479,8 @@ class TestDNSUpdates(DNSTest):
response = self.dns_transaction_udp(p)
self.assert_dns_rcode_equals(response, dns.DNS_RCODE_OK)
self.assertEquals(response.ancount, 1)
- self.assertEquals(response.answers[0].rdata.txt, '"This is a test" "and this is a test, too"')
+ self.assertEquals(response.answers[0].rdata.txt.str[0], '"This is a test"')
+ self.assertEquals(response.answers[0].rdata.txt.str[1], '"and this is a test, too"')
def test_delete_record(self):
"Test if deleting records works"
@@ -497,8 +504,7 @@ class TestDNSUpdates(DNSTest):
r.rr_class = dns.DNS_QCLASS_IN
r.ttl = 900
r.length = 0xffff
- rdata = dns.txt_record()
- rdata.txt = '"This is a test"'
+ rdata = make_txt_record(['"This is a test"'])
r.rdata = rdata
updates.append(r)
p.nscount = len(updates)
@@ -534,8 +540,7 @@ class TestDNSUpdates(DNSTest):
r.rr_class = dns.DNS_QCLASS_NONE
r.ttl = 0
r.length = 0xffff
- rdata = dns.txt_record()
- rdata.txt = '"This is a test"'
+ rdata = make_txt_record(['"This is a test"'])
r.rdata = rdata
updates.append(r)
p.nscount = len(updates)
@@ -577,8 +582,7 @@ class TestDNSUpdates(DNSTest):
r.rr_class = dns.DNS_QCLASS_IN
r.ttl = 900
r.length = 0xffff
- rdata = dns.txt_record()
- rdata.txt = '"This is a test"'
+ rdata = make_txt_record(['"This is a test"'])
r.rdata = rdata
updates.append(r)
p.nscount = len(updates)
@@ -614,8 +618,7 @@ class TestDNSUpdates(DNSTest):
r.rr_class = dns.DNS_QCLASS_NONE
r.ttl = 0
r.length = 0xffff
- rdata = dns.txt_record()
- rdata.txt = '"This is a test"'
+ rdata = make_txt_record(['"This is a test"'])
r.rdata = rdata
updates.append(r)
p.nscount = len(updates)
@@ -652,8 +655,7 @@ class TestDNSUpdates(DNSTest):
r.rr_class = dns.DNS_QCLASS_IN
r.ttl = 900
r.length = 0xffff
- rdata = dns.txt_record()
- rdata.txt = '"This is a test"'
+ rdata = make_txt_record(['"This is a test"'])
r.rdata = rdata
updates.append(r)
p.nscount = len(updates)