summaryrefslogtreecommitdiff
path: root/pbx/pbx_dundi.c
diff options
context:
space:
mode:
authorRussell Bryant <russell@russellbryant.com>2006-04-30 04:23:09 +0000
committerRussell Bryant <russell@russellbryant.com>2006-04-30 04:23:09 +0000
commit059f0bd108d72a2f5d8fe51d97326414f0a90bae (patch)
tree70d555145fa53ae8a7a0740d3315e4eb131597f2 /pbx/pbx_dundi.c
parentd66de679d99eec41b9fb7f56da98e06ecad50275 (diff)
immediately handle a memory allocation failure so the rest of the function
doesn't have to be indented (indentation still to be fixed) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@23464 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'pbx/pbx_dundi.c')
-rw-r--r--pbx/pbx_dundi.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/pbx/pbx_dundi.c b/pbx/pbx_dundi.c
index f9481fe34..7fbdf5f41 100644
--- a/pbx/pbx_dundi.c
+++ b/pbx/pbx_dundi.c
@@ -4177,8 +4177,10 @@ static void build_peer(dundi_eid *eid, struct ast_variable *v, int *globalpcmode
}
if (!peer) {
/* Add us into the list */
- peer = ast_calloc(1, sizeof(*peer));
- if (peer) {
+ if (!(peer = ast_calloc(1, sizeof(*peer)))) {
+ AST_LIST_UNLOCK(&peers);
+ return;
+ }
peer->registerid = -1;
peer->registerexpire = -1;
peer->qualifyid = -1;
@@ -4186,9 +4188,7 @@ static void build_peer(dundi_eid *eid, struct ast_variable *v, int *globalpcmode
peer->addr.sin_port = htons(DUNDI_PORT);
populate_addr(peer, eid);
AST_LIST_INSERT_HEAD(&peers, peer, list);
- }
}
- if (peer) {
peer->dead = 0;
peer->eid = *eid;
peer->us_eid = global_eid;
@@ -4308,7 +4308,6 @@ static void build_peer(dundi_eid *eid, struct ast_variable *v, int *globalpcmode
}
qualify_peer(peer, 1);
}
- }
AST_LIST_UNLOCK(&peers);
}