<p>George Joseph has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.asterisk.org/c/asterisk/+/11336">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">res_pjsip:  Check return from pjsip_parse_uri calls<br><br>Updated ast_sip_create_rdata_with_contact and registrar_find_contact<br>to check the return from pjsip_parse_uri before attempting to<br>use the uri returned.<br><br>ASTERISK-28402<br>Reported-by: Ross Beer<br><br>Change-Id: I9810b3b163c45ed5a56ec743586e5ce107f13ba7<br>---<br>M res/res_pjsip.c<br>M res/res_pjsip_registrar.c<br>2 files changed, 15 insertions(+), 1 deletion(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.asterisk.org:29418/asterisk refs/changes/36/11336/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/res/res_pjsip.c b/res/res_pjsip.c</span><br><span>index b063d3d..4c3343d 100644</span><br><span>--- a/res/res_pjsip.c</span><br><span>+++ b/res/res_pjsip.c</span><br><span>@@ -3394,6 +3394,10 @@</span><br><span>              if (contact_hdr) {</span><br><span>                   contact_hdr->uri = pjsip_parse_uri(rdata->tp_info.pool, (char *)contact,</span><br><span>                               strlen(contact), PJSIP_PARSE_URI_AS_NAMEADDR);</span><br><span style="color: hsl(120, 100%, 40%);">+                        if (!contact_hdr->uri) {</span><br><span style="color: hsl(120, 100%, 40%);">+                           ast_log(LOG_WARNING, "Unable to parse contact URI from '%s'.\n", contact);</span><br><span style="color: hsl(120, 100%, 40%);">+                          return -1;</span><br><span style="color: hsl(120, 100%, 40%);">+                    }</span><br><span>            }</span><br><span>    }</span><br><span> </span><br><span>diff --git a/res/res_pjsip_registrar.c b/res/res_pjsip_registrar.c</span><br><span>index bf51733..c72ac19 100644</span><br><span>--- a/res/res_pjsip_registrar.c</span><br><span>+++ b/res/res_pjsip_registrar.c</span><br><span>@@ -122,7 +122,17 @@</span><br><span> {</span><br><span>   struct ast_sip_contact *contact = obj;</span><br><span>       const struct registrar_contact_details *details = arg;</span><br><span style="color: hsl(0, 100%, 40%);">-  pjsip_uri *contact_uri = pjsip_parse_uri(details->pool, (char*)contact->uri, strlen(contact->uri), 0);</span><br><span style="color: hsl(120, 100%, 40%);">+       pjsip_uri *contact_uri;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     if (ast_tvzero(contact->expiration_time)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                return 0;</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   contact_uri = pjsip_parse_uri(details->pool, (char*)contact->uri, strlen(contact->uri), 0);</span><br><span style="color: hsl(120, 100%, 40%);">+  if (!contact_uri) {</span><br><span style="color: hsl(120, 100%, 40%);">+           ast_log(LOG_WARNING, "Unable to parse contact URI from '%s'.\n", contact->uri);</span><br><span style="color: hsl(120, 100%, 40%);">+          return 0;</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span> </span><br><span>        return (pjsip_uri_cmp(PJSIP_URI_IN_CONTACT_HDR, details->uri, contact_uri) == PJ_SUCCESS) ? CMP_MATCH : 0;</span><br><span> }</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.asterisk.org/c/asterisk/+/11336">change 11336</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.asterisk.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.asterisk.org/c/asterisk/+/11336"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: asterisk </div>
<div style="display:none"> Gerrit-Branch: certified/13.21 </div>
<div style="display:none"> Gerrit-Change-Id: I9810b3b163c45ed5a56ec743586e5ce107f13ba7 </div>
<div style="display:none"> Gerrit-Change-Number: 11336 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: George Joseph <gjoseph@digium.com> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>