[asterisk-commits] russell: branch 1.6.0 r110338 - in /branches/1.6.0: ./ channels/
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Thu Mar 20 16:56:22 CDT 2008
Author: russell
Date: Thu Mar 20 16:56:22 2008
New Revision: 110338
URL: http://svn.digium.com/view/asterisk?view=rev&rev=110338
Log:
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.
........
................
................
Modified:
branches/1.6.0/ (props changed)
branches/1.6.0/channels/chan_iax2.c
branches/1.6.0/channels/chan_sip.c
Propchange: branches/1.6.0/
------------------------------------------------------------------------------
Binary property 'trunk-merged' - no diff available.
Modified: branches/1.6.0/channels/chan_iax2.c
URL: http://svn.digium.com/view/asterisk/branches/1.6.0/channels/chan_iax2.c?view=diff&rev=110338&r1=110337&r2=110338
==============================================================================
--- branches/1.6.0/channels/chan_iax2.c (original)
+++ branches/1.6.0/channels/chan_iax2.c Thu Mar 20 16:56:22 2008
@@ -2959,10 +2959,9 @@
if (var && sin) {
for (tmp = var; tmp; tmp = tmp->next) {
if (!strcasecmp(tmp->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 ast_hostent ahp;
+ struct hostent *hp;
+ 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;
@@ -3072,10 +3071,9 @@
if (var) {
for (tmp = var; tmp; tmp = tmp->next) {
if (!strcasecmp(tmp->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 ast_hostent ahp;
+ struct hostent *hp;
+ 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;
Modified: branches/1.6.0/channels/chan_sip.c
URL: http://svn.digium.com/view/asterisk/branches/1.6.0/channels/chan_sip.c?view=diff&rev=110338&r1=110337&r2=110338
==============================================================================
--- branches/1.6.0/channels/chan_sip.c (original)
+++ branches/1.6.0/channels/chan_sip.c Thu Mar 20 16:56:22 2008
@@ -3578,10 +3578,9 @@
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;
More information about the asterisk-commits
mailing list