[svn-commits] kpfleming: branch qwell/echocan-debug r2429 - /team/qwell/echocan-debug/

svn-commits at lists.digium.com svn-commits at lists.digium.com
Sat Apr 21 08:25:21 MST 2007


Author: kpfleming
Date: Sat Apr 21 10:25:20 2007
New Revision: 2429

URL: http://svn.digium.com/view/zaptel?view=rev&rev=2429
Log:
ensure that the pre-ec readchunk buffer is freed when the channel is closed

Modified:
    team/qwell/echocan-debug/zaptel-base.c

Modified: team/qwell/echocan-debug/zaptel-base.c
URL: http://svn.digium.com/view/zaptel/team/qwell/echocan-debug/zaptel-base.c?view=diff&rev=2429&r1=2428&r2=2429
==============================================================================
--- team/qwell/echocan-debug/zaptel-base.c (original)
+++ team/qwell/echocan-debug/zaptel-base.c Sat Apr 21 10:25:20 2007
@@ -984,6 +984,7 @@
 	void *rxgain = NULL;
 	struct echo_can_state *ec = NULL;
 	int oldconf;
+	short *readchunkpreec;
 #ifdef CONFIG_ZAPATA_PPP
 	struct ppp_channel *ppp;
 #endif
@@ -998,6 +999,8 @@
 #endif
 	ec = chan->ec;
 	chan->ec = NULL;
+	readchunkpreec = chan->readchunkpreec;
+	chan->readchunkpreec = NULL;
 	chan->curtone = NULL;
 	chan->curzone = NULL;
 	chan->cadencepos = 0;
@@ -1058,6 +1061,7 @@
 		kfree(rxgain);
 	if (ec)
 		echo_can_free(ec);
+	kfree(readchunkpreec);
 
 #ifdef CONFIG_ZAPATA_PPP
 	if (ppp) {
@@ -3985,7 +3989,11 @@
 		if ((stack.conf.confmode & ZT_CONF_MODE_MASK) == ZT_CONF_MONITOR_RX_PREECHO ||
 		    (stack.conf.confmode & ZT_CONF_MODE_MASK) == ZT_CONF_MONITOR_TX_PREECHO ||
 		    (stack.conf.confmode & ZT_CONF_MODE_MASK) == ZT_CONF_MONITORBOTH_PREECHO)
-			chans[stack.conf.confno]->readchunkpreec = kmalloc(sizeof(short) * ZT_MAX_CHUNKSIZE, GFP_KERNEL);
+			chans[stack.conf.confno]->readchunkpreec = kmalloc(sizeof(*chans[stack.conf.confno]->readchunkpreec) * ZT_CHUNKSIZE, GFP_KERNEL);
+		else {
+			kfree(chans[stack.conf.confno]->readchunkpreec);
+			chans[stack.conf.confno]->readchunkpreec = NULL;
+		}
 
 		spin_unlock_irqrestore(&chan->lock, flags);
 		spin_unlock_irqrestore(&bigzaplock, flagso);



More information about the svn-commits mailing list