[asterisk-commits] file: branch 1.2 r47750 -
/branches/1.2/channels/chan_local.c
asterisk-commits at lists.digium.com
asterisk-commits at lists.digium.com
Thu Nov 16 11:26:50 MST 2006
Author: file
Date: Thu Nov 16 12:26:50 2006
New Revision: 47750
URL: http://svn.digium.com/view/asterisk?view=rev&rev=47750
Log:
Because of the way chan_local is written we should be extra careful and make sure our callback functions have a tech_pvt. (issue #8275 reported by mflorell)
Modified:
branches/1.2/channels/chan_local.c
Modified: branches/1.2/channels/chan_local.c
URL: http://svn.digium.com/view/asterisk/branches/1.2/channels/chan_local.c?view=diff&rev=47750&r1=47749&r2=47750
==============================================================================
--- branches/1.2/channels/chan_local.c (original)
+++ branches/1.2/channels/chan_local.c Thu Nov 16 12:26:50 2006
@@ -167,6 +167,9 @@
struct local_pvt *p = ast->tech_pvt;
int isoutbound;
int res = -1;
+
+ if (!p)
+ return -1;
ast_mutex_lock(&p->lock);
isoutbound = IS_OUTBOUND(ast, p);
@@ -245,6 +248,9 @@
int res = -1;
int isoutbound;
+ if (!p)
+ return -1;
+
/* Just queue for delivery to the other side */
ast_mutex_lock(&p->lock);
isoutbound = IS_OUTBOUND(ast, p);
@@ -289,6 +295,9 @@
struct ast_frame f = { AST_FRAME_CONTROL, };
int isoutbound;
+ if (!p)
+ return -1;
+
/* Queue up a frame representing the indication as a control frame */
ast_mutex_lock(&p->lock);
isoutbound = IS_OUTBOUND(ast, p);
@@ -305,6 +314,9 @@
struct ast_frame f = { AST_FRAME_DTMF, };
int isoutbound;
+ if (!p)
+ return -1;
+
ast_mutex_lock(&p->lock);
isoutbound = IS_OUTBOUND(ast, p);
f.subclass = digit;
@@ -320,6 +332,9 @@
struct ast_frame f = { AST_FRAME_HTML, };
int isoutbound;
+ if (!p)
+ return -1;
+
ast_mutex_lock(&p->lock);
isoutbound = IS_OUTBOUND(ast, p);
f.subclass = subclass;
@@ -338,6 +353,9 @@
int res;
struct ast_var_t *varptr = NULL, *new;
size_t len, namelen;
+
+ if (!p)
+ return -1;
ast_mutex_lock(&p->lock);
@@ -413,6 +431,9 @@
struct local_pvt *cur, *prev=NULL;
struct ast_channel *ochan = NULL;
int glaredetect;
+
+ if (!p)
+ return -1;
ast_mutex_lock(&p->lock);
isoutbound = IS_OUTBOUND(ast, p);
More information about the asterisk-commits
mailing list