From dcd583bbdef0aee32cec7f90eb0f18fe4a08d68c Mon Sep 17 00:00:00 2001
From: Ben Kramer <bkramer@voicetronix.com.au>
Date: Mon, 10 Jan 2005 22:09:19 +0000
Subject: [PATCH] / checks to if owner is set before using it.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4751 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 channels/chan_vpb.c | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/channels/chan_vpb.c b/channels/chan_vpb.c
index 4dc359fcfb..9bcf1f2f0b 100755
--- a/channels/chan_vpb.c
+++ b/channels/chan_vpb.c
@@ -979,13 +979,19 @@ static inline int monitor_handle_notowned(struct vpb_pvt *p, VPB_EVENT *e)
 						p->callerid[p->dtmf_caller_pos] = '\0';
 						if (option_verbose > 2)
 							ast_verbose(VERBOSE_PREFIX_3 " %s: DTMF CallerID %s\n",p->dev,p->callerid);
-						if (owner->cid.cid_num)
-							free(owner->cid.cid_num);
-						owner->cid.cid_num=NULL;
-						if (owner->cid.cid_name)
-							free(owner->cid.cid_name);
-						owner->cid.cid_name=NULL;
-						owner->cid.cid_num = strdup(p->callerid);
+						if (owner){
+							if (owner->cid.cid_num)
+								free(owner->cid.cid_num);
+							owner->cid.cid_num=NULL;
+							if (owner->cid.cid_name)
+								free(owner->cid.cid_name);
+							owner->cid.cid_name=NULL;
+							owner->cid.cid_num = strdup(p->callerid);
+						}
+						else {
+							if (option_verbose > 2)
+								ast_verbose(VERBOSE_PREFIX_3 " %s: DTMF CallerID: no owner to assign CID \n",p->dev);
+						}
 					} else if ( p->dtmf_caller_pos < AST_MAX_EXTENSION ) {
 						if ( p->dtmf_caller_pos >= 0 )
 							p->callerid[p->dtmf_caller_pos] = e->data;
-- 
GitLab