[asterisk-bugs] [JIRA] Updated: (ASTERISK-20495) Segfault in XMPP caused by the presence stanza of one of my contacts

Martin W (JIRA) noreply at issues.asterisk.org
Tue Oct 2 10:30:27 CDT 2012


     [ https://issues.asterisk.org/jira/browse/ASTERISK-20495?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Martin W updated ASTERISK-20495:
--------------------------------

    Description: 
Apologies if this report is a dupe or not appropriate here; I am new to the Asterisk source so please go easy.
Builds of asterisk were causing a segfault at start-up. I traced it to a particular contact whose presence contained the following:
{code}
<c ver="mac-2.2.0s" xmlns="http://jabber.org/protocol/caps"/>
{code}
It looks like the handling of "node" and "ver" attributes is incorrect: on res_xmpp.c:3144 (r374095).
To get it running locally I worked around it with the attached patch.
Hope this is useful.

  was:
Apologies if this report is a dupe or not appropriate here; I am new to the Asterisk source so please go easy.
Builds of asterisk were causing a segfault at start-up. I traced it to a particular contact whose presence contained the following:
{code}
<c ver="mac-2.2.0s" xmlns="http://jabber.org/protocol/caps"/>
{code}
It looks like the handling of "node" and "ver" attributes is incorrect: on res_xmpp.c:3144 (r374095).
To get it running locally I worked around it with this:
{code}
Index: res/res_xmpp.c
===================================================================
--- res/res_xmpp.c      (revision 374095)
+++ res/res_xmpp.c      (working copy)
@@ -3142,8 +3142,12 @@
                }
 
                if ((node && strcmp(resource->caps.node, node)) || (ver && strcmp(resource->caps.version, ver))) {
-                       ast_copy_string(resource->caps.node, node, sizeof(resource->caps.node));
-                       ast_copy_string(resource->caps.version, ver, sizeof(resource->caps.version));
+                       if (node) {
+                               ast_copy_string(resource->caps.node, node, sizeof(resource->caps.node));
+                       }
+                       if (ver) {
+                               ast_copy_string(resource->caps.version, ver, sizeof(resource->caps.version));
+                       }
 
                        /* Google Talk places the capabilities information directly in presence, so see if it is there */
                        if (iks_find_with_attrib(pak->x, "c", "node", "http://www.google.com/xmpp/client/caps") ||
{code} 
Hope this is useful.


> Segfault in XMPP caused by the presence stanza of one of my contacts
> --------------------------------------------------------------------
>
>                 Key: ASTERISK-20495
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-20495
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Resources/res_xmpp
>    Affects Versions: 11.0.0-beta2
>         Environment: built from head on x86_64 Ubuntu
>            Reporter: Martin W
>            Assignee: Martin W
>
> Apologies if this report is a dupe or not appropriate here; I am new to the Asterisk source so please go easy.
> Builds of asterisk were causing a segfault at start-up. I traced it to a particular contact whose presence contained the following:
> {code}
> <c ver="mac-2.2.0s" xmlns="http://jabber.org/protocol/caps"/>
> {code}
> It looks like the handling of "node" and "ver" attributes is incorrect: on res_xmpp.c:3144 (r374095).
> To get it running locally I worked around it with the attached patch.
> Hope this is useful.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



More information about the asterisk-bugs mailing list