# HG changeset patch # User carl # Date 1085967516 25200 # Node ID 95607fbef60873bf3b627aef99c0fb38a978239c # Parent d718dca81bc932e59bdd9124fa8496d3047e50b6 no message diff -r d718dca81bc9 -r 95607fbef608 src/dnsbl.cpp --- a/src/dnsbl.cpp Sun May 30 17:47:13 2004 -0700 +++ b/src/dnsbl.cpp Sun May 30 18:38:36 2004 -0700 @@ -442,7 +442,8 @@ *(n++) = '.'; } } - *(--n) = '\0'; // remove trailing . + if (n-nam) n--; // remove trailing . + *n = '\0'; // null terminate it register_string(ns, nam); // ns host to lookup later } } @@ -600,7 +601,7 @@ discard(nameservers); return reject_host; } - host = register_string(priv.memory->hosts, (*i).first); // put a copy into priv.memory->hosts, and return that reference + host = (*i).first; // a transient reference that needs to be replaced before we return it ip = (*i).second; if (!ip) ip = protected_dns_interface(host, false, NULL); if (debug_syslog) { @@ -619,6 +620,7 @@ if (ip) { status st = check_single(ip, dc.content_suffix); if (st == reject) { + host = register_string(priv.memory->hosts, host); // put a copy into priv.memory->hosts, and return that reference discard(nameservers); return st; }