Thanks a bunch for finding this bug! I appreciate the patch, too. I'm going to end up committing a different fix that avoids a bunch of the STL string copy/append operations in the original; there's nothing wrong with your patch, I just saw an opportunity to improve the performance of the original. You'll get a changelog credit for the fix, too, since you found exactly where the problem was; that's 90% of the work right there!
Some DNS servers might not respect the case of the name sent in the query when sending the reply. At least this is the case of bind 9.10, as shown below. This breaks (reverse) DNS resolution.
After flushing the DNS server's cache (
But if I ask again immediately, I get the answer from cache, which is cached in upper case:
... even if asked in lowercase:
DNS::Factory::ptrToIp, because it uses
std::string::findto match 'in-addr.arpa': https://github.com/nmap/nmap/blob/master/nmap_dns.cc#L1438
As a result, DNS resolution times out and fails:
This is a regression introduced in commit e090e09. The current master is still affected. I'll submit a PR in a minute.
The text was updated successfully, but these errors were encountered: