No subject
Tue Apr 2 00:56:56 UTC 2013
(*1) } else if (soa_cnt == 1) {
badsoa_msg = soa_zinfo(&zp_finish, rr_type_ptr, eom);
if (badsoa_msg) {
syslog(LOG_INFO,
"malformed SOA for zone %s: %s",
zp->z_origin, badsoa_msg);
hp->rcode = FORMERR;
return (-1);
}
if (zp_start.z_serial == zp_finish.z_serial) {
methode = ISNOTIXFR;
} else if (zp_finish.z_serial != serial_no) {
syslog(LOG_INFO,
"Unexpected serial number for zone %s: %u",
zp->z_origin, zp_finish.z_serial);
}
(*2) soa_cnt++;
if ((methode == ISIXFR) || (soa_cnt > 2)) {
return (result);
}
1. This "else if" block is executed when soa_cnt is 1.
2. soa_zinfo() dose not change soa_cnt.
3. At line (*2), soa_cnt is increased into 2.
4. And Next line, soa_cnt is compared with 2, but it would never larger
than 2.
In bind-8.2.1, coding is something diffrent, simpley return here.
My rough analysis is up to here...
--
Takahiro Kambe <taca at sky.yamashina.kyoto.jp>
More information about the bind-users
mailing list