aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b>2008-08-06 16:00:07 +0000
committermmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b>2008-08-06 16:00:07 +0000
commitcbd9bdced355dae5d4dfed21fb9dda1c6a2be569 (patch)
treeca2b85147f72cbfec5c69cdace94ed53c92ce9fd
parentad835ddf70d9e0cfd8f9108de1165e3c2b60d694 (diff)
Merged revisions 136063 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk ................ r136063 | mmichelson | 2008-08-06 10:59:29 -0500 (Wed, 06 Aug 2008) | 24 lines Merged revisions 136062 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r136062 | mmichelson | 2008-08-06 10:58:40 -0500 (Wed, 06 Aug 2008) | 16 lines Since adding the AST_CONTROL_SRCUPDATE frame type, there are places where ast_rtp_new_source may be called where the tech_pvt of a channel may not yet have an rtp structure allocated. This caused a crash in chan_skinny, which was fixed earlier, but now the same crash has been reported against chan_h323 as well. It seems that the best solution is to modify ast_rtp_new_source to not attempt to set the marker bit if the rtp structure passed in is NULL. This change to ast_rtp_new_source also allows the removal of what is now a redundant pointer check from chan_skinny. (closes issue #13247) Reported by: pj ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@136064 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r--channels/chan_skinny.c4
-rw-r--r--main/rtp.c4
2 files changed, 4 insertions, 4 deletions
diff --git a/channels/chan_skinny.c b/channels/chan_skinny.c
index aae9f5b2d..cf0838eec 100644
--- a/channels/chan_skinny.c
+++ b/channels/chan_skinny.c
@@ -3762,9 +3762,7 @@ static int skinny_indicate(struct ast_channel *ast, int ind, const void *data, s
case AST_CONTROL_PROCEEDING:
break;
case AST_CONTROL_SRCUPDATE:
- if (sub->rtp) {
- ast_rtp_new_source(sub->rtp);
- }
+ ast_rtp_new_source(sub->rtp);
break;
default:
ast_log(LOG_WARNING, "Don't know how to indicate condition %d\n", ind);
diff --git a/main/rtp.c b/main/rtp.c
index 4b871255e..5e1a9fd9e 100644
--- a/main/rtp.c
+++ b/main/rtp.c
@@ -2331,7 +2331,9 @@ int ast_rtp_setqos(struct ast_rtp *rtp, int tos, int cos, char *desc)
void ast_rtp_new_source(struct ast_rtp *rtp)
{
- rtp->set_marker_bit = 1;
+ if (rtp) {
+ rtp->set_marker_bit = 1;
+ }
return;
}