aboutsummaryrefslogtreecommitdiff
path: root/share/security/patches/SA-03:19/bind-836.patch
diff options
context:
space:
mode:
Diffstat (limited to 'share/security/patches/SA-03:19/bind-836.patch')
-rw-r--r--share/security/patches/SA-03:19/bind-836.patch106
1 files changed, 106 insertions, 0 deletions
diff --git a/share/security/patches/SA-03:19/bind-836.patch b/share/security/patches/SA-03:19/bind-836.patch
new file mode 100644
index 0000000000..5aa718abbe
--- /dev/null
+++ b/share/security/patches/SA-03:19/bind-836.patch
@@ -0,0 +1,106 @@
+Index: contrib/bind/Version
+===================================================================
+RCS file: /tmp/ncvs/src/contrib/bind/Version,v
+retrieving revision 1.1.1.12
+diff -c -r1.1.1.12 Version
+*** contrib/bind/Version 17 Jun 2003 08:23:21 -0000 1.1.1.12
+--- contrib/bind/Version 26 Nov 2003 16:44:32 -0000
+***************
+*** 1 ****
+! 8.3.6-REL
+--- 1 ----
+! 8.3.6-REL-p1
+Index: contrib/bind/bin/named/ns_resp.c
+===================================================================
+RCS file: /tmp/ncvs/src/contrib/bind/bin/named/ns_resp.c,v
+retrieving revision 1.1.1.12
+diff -c -r1.1.1.12 ns_resp.c
+*** contrib/bind/bin/named/ns_resp.c 17 Jun 2003 08:23:57 -0000 1.1.1.12
+--- contrib/bind/bin/named/ns_resp.c 26 Nov 2003 16:49:41 -0000
+***************
+*** 271,277 ****
+ int soacount;
+ u_int qtype, qclass;
+ int validanswer, dbflags;
+! int cname, lastwascname, externalcname;
+ int count, founddata, foundname;
+ int buflen;
+ int newmsglen;
+--- 271,277 ----
+ int soacount;
+ u_int qtype, qclass;
+ int validanswer, dbflags;
+! int cname, lastwascname, externalcname, cachenegative;
+ int count, founddata, foundname;
+ int buflen;
+ int newmsglen;
+***************
+*** 911,916 ****
+--- 911,917 ----
+ cname = 0;
+ lastwascname = 0;
+ externalcname = 0;
++ cachenegative = 1;
+ strcpy(aname, qname);
+
+ if (count) {
+***************
+*** 980,985 ****
+--- 981,987 ----
+ name);
+ db_detach(&dp);
+ validanswer = 0;
++ cachenegative = 0;
+ continue;
+ }
+ if (type == T_CNAME &&
+***************
+*** 1014,1019 ****
+--- 1016,1022 ----
+ "last was cname, ignoring auth. and add.");
+ db_detach(&dp);
+ validanswer = 0;
++ cachenegative = 0;
+ break;
+ }
+ if (i < arfirst) {
+***************
+*** 1029,1034 ****
+--- 1032,1038 ----
+ sin_ntoa(from));
+ db_detach(&dp);
+ validanswer = 0;
++ cachenegative = 0;
+ continue;
+ } else if (!ns_samedomain(name,
+ qp->q_domain)) {
+***************
+*** 1042,1047 ****
+--- 1046,1052 ----
+ sin_ntoa(from));
+ db_detach(&dp);
+ validanswer = 0;
++ cachenegative = 0;
+ continue;
+ }
+ if (type == T_NS) {
+***************
+*** 1205,1212 ****
+ )
+ )
+ {
+! cache_n_resp(msg, msglen, from, qp->q_name,
+! qp->q_class, qp->q_type);
+
+ if (!qp->q_cmsglen && validanswer) {
+ ns_debug(ns_log_default, 3,
+--- 1210,1218 ----
+ )
+ )
+ {
+! if (cachenegative)
+! cache_n_resp(msg, msglen, from, qp->q_name,
+! qp->q_class, qp->q_type);
+
+ if (!qp->q_cmsglen && validanswer) {
+ ns_debug(ns_log_default, 3,