Fixes a couple of crashers in chan_sip.
-- Luke
Index: channels/chan_sip.c
===================================================================
RCS file: /usr/cvsroot/asterisk/channels/chan_sip.c,v
retrieving revision 1.23
diff -u -r1.23 chan_sip.c
--- channels/chan_sip.c 31 Mar 2003 03:19:34 -0000 1.23
+++ channels/chan_sip.c 31 Mar 2003 13:49:50 -0000
@@ -363,13 +363,16 @@
} else {
/* If no owner, destroy now */
sip_destroy(pkt->owner);
+ pkt = NULL;
}
}
} else {
/* Don't bother retransmitting. It's about to be killed anyway */
pkt->retransid = -1;
}
- ast_pthread_mutex_unlock(&pkt->owner->lock);
+ if (pkt != NULL) {
+ ast_pthread_mutex_unlock(&pkt->owner->lock);
+ }
return res;
}
@@ -2175,8 +2178,9 @@
char via[80];
char addr[80];
struct sip_pvt *p;
+
/* exit if we are already in process with this registrar ?*/
- if ( (auth==NULL && r->regstate==REG_STATE_REGSENT) ||
r->regstate==REG_STATE_AUTHSENT) {
+ if (r == NULL || (auth==NULL && r->regstate==REG_STATE_REGSENT) ||
r->regstate==REG_STATE_AUTHSENT) {
ast_log(LOG_NOTICE, "Strange, trying to register when registration
already pending\n");
return 0;
}
P.S. Mark, you might want to take a look at:
==29395==
==29395== Thread 14:
==29395== Conditional jump or move depends on uninitialised value(s)
==29395== at 0x401662D3: strcmp (vg_clientfuncs.c:477)
==29395== by 0x8064D86: pbx_builtin_getvar_helper (pbx.c:3900)
==29395== by 0x43CD7420: ??? (app_macro.c:124)
==29395== by 0x805E05F: pbx_exec (pbx.c:352)
--
Luke Howard | PADL Software Pty Ltd | www.padl.com