aboutsummaryrefslogtreecommitdiffstats
path: root/res/res_jabber.c
diff options
context:
space:
mode:
authormogorman <mogorman@f38db490-d61c-443f-a65b-d21fe96a405b>2006-06-06 19:18:44 +0000
committermogorman <mogorman@f38db490-d61c-443f-a65b-d21fe96a405b>2006-06-06 19:18:44 +0000
commitce04789775c3f638ee35637eea72e9d8584ab02b (patch)
tree119e1a9415731887f35dec03c44aea5468226e51 /res/res_jabber.c
parentb7abebf0767aa2fee2e1700ff994a96fc77f6e6c (diff)
fix a potential segfault
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@32674 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'res/res_jabber.c')
-rw-r--r--res/res_jabber.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/res/res_jabber.c b/res/res_jabber.c
index 6b516d410..8a16ade88 100644
--- a/res/res_jabber.c
+++ b/res/res_jabber.c
@@ -811,7 +811,11 @@ static int aji_client_info_handler(void *data, ikspak *pak)
buddy = ASTOBJ_CONTAINER_FIND(&client->buddies, pak->from->partial);
resource = aji_find_resource(buddy, pak->from->resource);
-
+ if (!resource) {
+ ast_log(LOG_NOTICE,"JABBER: Received client info from %s when not requested.\n", pak->from->full);
+ ASTOBJ_UNREF(client, aji_client_destroy);
+ return IKS_FILTER_EAT;
+ }
if (pak->subtype == IKS_TYPE_RESULT) {
if (iks_find_with_attrib(pak->query, "feature", "var", "http://www.google.com/xmpp/protocol/voice/v1")) {
resource->cap->jingle = 1;
@@ -837,8 +841,8 @@ static int aji_client_info_handler(void *data, ikspak *pak)
iks_insert_attrib(google, "var", "http://www.google.com/xmpp/protocol/voice/v1");
iks_insert_node(iq, query);
iks_insert_node(query, ident);
- iks_insert_node(query, disco);
iks_insert_node(query, google);
+ iks_insert_node(query, disco);
iks_send(client->p, iq);
} else
ast_log(LOG_ERROR, "Out of Memory.\n");