[thirdparty-commits] rmudgett: mISDN/trunk r136 - /mISDN/trunk/drivers/isdn/hardware/mISDN/dsp_core.c
SVN commits to the Digium third-party software repository
thirdparty-commits at lists.digium.com
Tue Oct 6 10:55:41 CDT 2009
Author: rmudgett
Date: Tue Oct 6 10:55:39 2009
New Revision: 136
URL: http://svnview.digium.com/svn/thirdparty?view=rev&rev=136
Log:
mISDN eats one 512 byte kernel buffer whenever a new call is made.
Caused by dsp module control frame handlers:
* dsp_from_down() leaked a kernel buffer every control(VOL_CHANGE_TX).
* dsp_from_up() caused a double free of a kernel buffer if passing a
buffer to the down queue failed.
Patches:
dsp-skb2.patch
JIRA ABE-1991
Modified:
mISDN/trunk/drivers/isdn/hardware/mISDN/dsp_core.c
Modified: mISDN/trunk/drivers/isdn/hardware/mISDN/dsp_core.c
URL: http://svnview.digium.com/svn/thirdparty/mISDN/trunk/drivers/isdn/hardware/mISDN/dsp_core.c?view=diff&rev=136&r1=135&r2=136
==============================================================================
--- mISDN/trunk/drivers/isdn/hardware/mISDN/dsp_core.c (original)
+++ mISDN/trunk/drivers/isdn/hardware/mISDN/dsp_core.c Tue Oct 6 10:55:39 2009
@@ -469,7 +469,6 @@
dsp_bf_encrypt(dsp, skb->data, skb->len);
/* send packet */
if (mISDN_queue_down(&dsp->inst, 0, skb)) {
- dev_kfree_skb(skb);
printk(KERN_ERR "%s: failed to send tx-packet\n", __FUNCTION__);
return (-EIO);
@@ -647,7 +646,9 @@
printk(KERN_DEBUG "%s: change tx volume to %d\n", __FUNCTION__, dsp->tx_volume);
printk(KERN_DEBUG "%s: change tx volume to %d\n", __FUNCTION__, dsp->tx_volume);
dsp_cmx_hardware(dsp->conf, dsp);
+ dev_kfree_skb(skb);
break;
+
default:
if (dsp_debug & DEBUG_DSP_CORE)
printk(KERN_DEBUG "%s: ctrl ind %x unhandled %s\n", __FUNCTION__, hh->dinfo, dsp->inst.name);
More information about the thirdparty-commits
mailing list