From d5eda8709c8752ef64b07d476a790ec7b563d93b Mon Sep 17 00:00:00 2001
From: Joshua Colp <jcolp@digium.com>
Date: Mon, 13 Aug 2007 14:22:46 +0000
Subject: [PATCH] Merged revisions 79174 via svnmerge from
 https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r79174 | file | 2007-08-13 11:18:04 -0300 (Mon, 13 Aug 2007) | 4 lines

(closes issue #10437)
Reported by: haklin
Don't set the callerid name and number a second time on a newly created channel. ast_channel_alloc itself already sets it and setting it twice would cause a memory leak.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@79175 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 channels/chan_gtalk.c  | 2 --
 channels/chan_h323.c   | 2 --
 channels/chan_iax2.c   | 2 --
 channels/chan_jingle.c | 2 --
 channels/chan_local.c  | 2 --
 channels/chan_mgcp.c   | 2 --
 channels/chan_misdn.c  | 8 +-------
 channels/chan_oss.c    | 2 --
 channels/chan_phone.c  | 2 --
 channels/chan_sip.c    | 2 --
 channels/chan_skinny.c | 2 --
 channels/chan_zap.c    | 4 ----
 12 files changed, 1 insertion(+), 31 deletions(-)

diff --git a/channels/chan_gtalk.c b/channels/chan_gtalk.c
index cbdaa076f6..b4306fefec 100644
--- a/channels/chan_gtalk.c
+++ b/channels/chan_gtalk.c
@@ -979,9 +979,7 @@ static struct ast_channel *gtalk_new(struct gtalk *client, struct gtalk_pvt *i,
 		cid = data;
 	}
 	cid = strsep(&cid, "@");
-	tmp->cid.cid_num = ast_strdup(cid);
 	tmp->cid.cid_ani = ast_strdup(cid);
-	tmp->cid.cid_name = ast_strdup(i->them);
 	if (!ast_strlen_zero(i->exten) && strcmp(i->exten, "s"))
 		tmp->cid.cid_dnid = ast_strdup(i->exten);
 	tmp->priority = 1;
diff --git a/channels/chan_h323.c b/channels/chan_h323.c
index 434d210d21..36f42e878a 100644
--- a/channels/chan_h323.c
+++ b/channels/chan_h323.c
@@ -1079,9 +1079,7 @@ static struct ast_channel *__oh323_new(struct oh323_pvt *pvt, int state, const c
 
 		/* Don't use ast_set_callerid() here because it will
 		 * generate a needless NewCallerID event */
-		ch->cid.cid_num = ast_strdup(cid_num);
 		ch->cid.cid_ani = ast_strdup(cid_num);
-		ch->cid.cid_name = ast_strdup(cid_name);
 
 		if (pvt->cd.redirect_reason >= 0) {
 			ch->cid.cid_rdnis = ast_strdup(pvt->cd.redirect_number);
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index 30c79e47cd..c6ea721bdd 100644
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -3569,8 +3569,6 @@ static struct ast_channel *ast_iax2_new(int callno, int state, int capability)
 
 	/* Don't use ast_set_callerid() here because it will
 	 * generate a NewCallerID event before the NewChannel event */
-	tmp->cid.cid_num = ast_strdup(i->cid_num);
-	tmp->cid.cid_name = ast_strdup(i->cid_name);
 	if (!ast_strlen_zero(i->ani))
 		tmp->cid.cid_ani = ast_strdup(i->ani);
 	else
diff --git a/channels/chan_jingle.c b/channels/chan_jingle.c
index e45724f041..8a3321c055 100644
--- a/channels/chan_jingle.c
+++ b/channels/chan_jingle.c
@@ -827,9 +827,7 @@ static struct ast_channel *jingle_new(struct jingle *client, struct jingle_pvt *
 	ast_copy_string(tmp->exten, i->exten, sizeof(tmp->exten));
 	/* Don't use ast_set_callerid() here because it will
 	 * generate an unnecessary NewCallerID event  */
-	tmp->cid.cid_num = ast_strdup(i->cid_num);
 	tmp->cid.cid_ani = ast_strdup(i->cid_num);
-	tmp->cid.cid_name = ast_strdup(i->cid_name);
 	if (!ast_strlen_zero(i->exten) && strcmp(i->exten, "s"))
 		tmp->cid.cid_dnid = ast_strdup(i->exten);
 	tmp->priority = 1;
diff --git a/channels/chan_local.c b/channels/chan_local.c
index 30ad2203be..46015a14e1 100644
--- a/channels/chan_local.c
+++ b/channels/chan_local.c
@@ -453,8 +453,6 @@ static int local_call(struct ast_channel *ast, char *dest, int timeout)
 	
 	ast_mutex_lock(&p->lock);
 
-	p->chan->cid.cid_num = ast_strdup(p->owner->cid.cid_num);
-	p->chan->cid.cid_name = ast_strdup(p->owner->cid.cid_name);
 	p->chan->cid.cid_rdnis = ast_strdup(p->owner->cid.cid_rdnis);
 	p->chan->cid.cid_ani = ast_strdup(p->owner->cid.cid_ani);
 	p->chan->cid.cid_pres = p->owner->cid.cid_pres;
diff --git a/channels/chan_mgcp.c b/channels/chan_mgcp.c
index f5e38ddf1f..64d300faf9 100644
--- a/channels/chan_mgcp.c
+++ b/channels/chan_mgcp.c
@@ -1495,9 +1495,7 @@ static struct ast_channel *mgcp_new(struct mgcp_subchannel *sub, int state)
 
 		/* Don't use ast_set_callerid() here because it will
 		 * generate a needless NewCallerID event */
-		tmp->cid.cid_num = ast_strdup(i->cid_num);
 		tmp->cid.cid_ani = ast_strdup(i->cid_num);
-		tmp->cid.cid_name = ast_strdup(i->cid_name);
 		
 		if (!i->adsi)
 			tmp->adsicpe = AST_ADSI_UNAVAILABLE;
diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c
index ad4d5a5a90..17c6d09c91 100644
--- a/channels/chan_misdn.c
+++ b/channels/chan_misdn.c
@@ -3206,16 +3206,10 @@ static struct ast_channel *misdn_new(struct chan_list *chlist, int state,  char
 		else
 			chan_misdn_log(1, 0, "misdn_new: no exten given.\n");
 
-		if (callerid) {
-			char *cid_name, *cid_num;
-      
-			ast_callerid_parse(callerid, &cid_name, &cid_num);
+		if (callerid)
 			/* Don't use ast_set_callerid() here because it will
 			 * generate a needless NewCallerID event */
-			tmp->cid.cid_num = ast_strdup(cid_num);
 			tmp->cid.cid_ani = ast_strdup(cid_num);
-			tmp->cid.cid_name = ast_strdup(cid_name);
-		}
 
 		if (pipe(chlist->pipe) < 0)
 			ast_log(LOG_ERROR, "Pipe failed\n");
diff --git a/channels/chan_oss.c b/channels/chan_oss.c
index 3178737599..6256deb37a 100644
--- a/channels/chan_oss.c
+++ b/channels/chan_oss.c
@@ -1036,9 +1036,7 @@ static struct ast_channel *oss_new(struct chan_oss_pvt *o, char *ext, char *ctx,
 		ast_string_field_set(c, language, o->language);
 	/* Don't use ast_set_callerid() here because it will
 	 * generate a needless NewCallerID event */
-	c->cid.cid_num = ast_strdup(o->cid_num);
 	c->cid.cid_ani = ast_strdup(o->cid_num);
-	c->cid.cid_name = ast_strdup(o->cid_name);
 	if (!ast_strlen_zero(ext))
 		c->cid.cid_dnid = ast_strdup(ext);
 
diff --git a/channels/chan_phone.c b/channels/chan_phone.c
index 6a51b6dd68..e99b74ee95 100644
--- a/channels/chan_phone.c
+++ b/channels/chan_phone.c
@@ -890,9 +890,7 @@ static struct ast_channel *phone_new(struct phone_pvt *i, int state, char *conte
 
 		/* Don't use ast_set_callerid() here because it will
 		 * generate a NewCallerID event before the NewChannel event */
-		tmp->cid.cid_num = ast_strdup(i->cid_num);
 		tmp->cid.cid_ani = ast_strdup(i->cid_num);
-		tmp->cid.cid_name = ast_strdup(i->cid_name);
 
 		i->owner = tmp;
 		ast_module_ref(ast_module_info->self);
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index f3c1985d6f..ca3e6d3ff7 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -4622,9 +4622,7 @@ static struct ast_channel *sip_new(struct sip_pvt *i, int state, const char *tit
 
 	/* Don't use ast_set_callerid() here because it will
 	 * generate an unnecessary NewCallerID event  */
-	tmp->cid.cid_num = ast_strdup(i->cid_num);
 	tmp->cid.cid_ani = ast_strdup(i->cid_num);
-	tmp->cid.cid_name = ast_strdup(i->cid_name);
 	if (!ast_strlen_zero(i->rdnis))
 		tmp->cid.cid_rdnis = ast_strdup(i->rdnis);
 	
diff --git a/channels/chan_skinny.c b/channels/chan_skinny.c
index 78fce94387..d9629ed2f6 100644
--- a/channels/chan_skinny.c
+++ b/channels/chan_skinny.c
@@ -3229,9 +3229,7 @@ static struct ast_channel *skinny_new(struct skinny_line *l, int state)
 
 		/* Don't use ast_set_callerid() here because it will
 		 * generate a needless NewCallerID event */
-		tmp->cid.cid_num = ast_strdup(l->cid_num);
 		tmp->cid.cid_ani = ast_strdup(l->cid_num);
-		tmp->cid.cid_name = ast_strdup(l->cid_name);
 
 		tmp->priority = 1;
 		tmp->adsicpe = AST_ADSI_UNAVAILABLE;
diff --git a/channels/chan_zap.c b/channels/chan_zap.c
index 4152f0e192..e4304a5569 100644
--- a/channels/chan_zap.c
+++ b/channels/chan_zap.c
@@ -5616,16 +5616,12 @@ static struct ast_channel *zt_new(struct zt_pvt *i, int state, int startpbx, int
 	/* Don't use ast_set_callerid() here because it will
 	 * generate a needless NewCallerID event */
 #ifdef PRI_ANI
-	tmp->cid.cid_num = ast_strdup(i->cid_num);
-	tmp->cid.cid_name = ast_strdup(i->cid_name);
 	if (!ast_strlen_zero(i->cid_ani))
 		tmp->cid.cid_ani = ast_strdup(i->cid_ani);
 	else	
 		tmp->cid.cid_ani = ast_strdup(i->cid_num);
 #else
-	tmp->cid.cid_num = ast_strdup(i->cid_num);
 	tmp->cid.cid_ani = ast_strdup(i->cid_num);
-	tmp->cid.cid_name = ast_strdup(i->cid_name);
 #endif
 	tmp->cid.cid_pres = i->callingpres;
 	tmp->cid.cid_ton = i->cid_ton;
-- 
GitLab