Nmap Development mailing list archives
[PATCH] Check maxlen only once in loop in parse_inaddr_arpa() in nmap_dns.cc
From: Kris Katterjohn <kjak () ispwest com>
Date: Fri, 01 Sep 2006 13:33:28 -0500
The attached patch moves the first 'if (maxlen <= 0) return 0;' outside
the loop in parse_inaddr_arpa() in nmap_dns.cc so it's only done once.
Old loop:
for (i=0; i<=3; i++) {
if (maxlen <= 0) return 0;
if (buf[0] < 1 || buf[0] > 3) return 0;
maxlen -= buf[0] + 1;
if (maxlen <= 0) return 0;
for (j=1; j<=buf[0]; j++) if (!isdigit(buf[j])) return 0;
ip |= atoi((char *) buf+1) << (8*i);
buf += buf[0] + 1;
}
As you can see, maxlen only needs to be tested <= 0 before the loop and
after it's modified in the loop instead of twice in the loop.
It's a diff against 4.20ALPHA5.
Thanks,
Kris Katterjohn
--- x/nmap_dns.cc 2006-08-28 23:02:35.000000000 -0500
+++ y/nmap_dns.cc 2006-09-01 13:21:01.000000000 -0500
@@ -569,9 +569,9 @@ static u32 parse_inaddr_arpa(unsigned ch
u32 ip=0;
int i, j;
- for (i=0; i<=3; i++) {
- if (maxlen <= 0) return 0;
+ if (maxlen <= 0) return 0;
+ for (i=0; i<=3; i++) {
if (buf[0] < 1 || buf[0] > 3) return 0;
maxlen -= buf[0] + 1;
_______________________________________________ Sent through the nmap-dev mailing list http://cgi.insecure.org/mailman/listinfo/nmap-dev Archived at http://SecLists.Org
Current thread:
- [PATCH] Check maxlen only once in loop in parse_inaddr_arpa() in nmap_dns.cc Kris Katterjohn (Sep 01)
