mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-07 02:18:15 +00:00
Merged revisions 110337 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk ................ r110337 | russell | 2008-03-20 16:55:50 -0500 (Thu, 20 Mar 2008) | 22 lines Merged revisions 110336 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ................ r110336 | russell | 2008-03-20 16:54:58 -0500 (Thu, 20 Mar 2008) | 14 lines Merged revisions 110335 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r110335 | russell | 2008-03-20 16:53:27 -0500 (Thu, 20 Mar 2008) | 6 lines Fix some very broken code that was introduced in 1.2.26 as a part of the security fix. The dnsmgr is not appropriate here. The dnsmgr takes a pointer to an address structure that a background thread continuously updates. However, in these cases, a stack variable was passed. That means that the dnsmgr thread would be continuously writing to bogus memory. ........ ................ ................ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@110338 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -3578,10 +3578,9 @@ static struct sip_peer *realtime_peer(const char *newpeername, struct sockaddr_i
|
||||
if (var) {
|
||||
for (tmp = var; tmp; tmp = tmp->next) {
|
||||
if (!strcasecmp(var->name, "host")) {
|
||||
struct in_addr sin2;
|
||||
struct ast_dnsmgr_entry *dnsmgr = NULL;
|
||||
memset(&sin2, 0, sizeof(sin2));
|
||||
if ((ast_dnsmgr_lookup(tmp->value, &sin2, &dnsmgr) < 0) || (memcmp(&sin2, &sin->sin_addr, sizeof(sin2)) != 0)) {
|
||||
struct hostent *hp;
|
||||
struct ast_hostent ahp;
|
||||
if (!(hp = ast_gethostbyname(tmp->value, &ahp)) || (memcmp(&hp->h_addr, &sin->sin_addr, sizeof(hp->h_addr)))) {
|
||||
/* No match */
|
||||
ast_variables_destroy(var);
|
||||
var = NULL;
|
||||
|
||||
Reference in New Issue
Block a user