On Thu, 2012-03-22 at 12:23 +0200, Tanu Kaskinen wrote: > pa__done() calls stop_thread(), and stop_thread() already > frees the smoother. The duplicate freeing is not strictly > a bug, but static analyzers (in this case Coverity) may > complain about double-freeing, because when pa__done() > "frees" the smoother (which doesn't actually ever happen), > the pointer is not nulled. pa__done() then calls > bt_transport_release(), which will also free the smoother > if it's not NULL. > > The analyzer complaint could be silenced also by nulling > the pointer in pa__done(), but since this is clearly > redundant code, I chose to remove it. > --- > src/modules/bluetooth/module-bluetooth-device.c | 3 --- > 1 files changed, 0 insertions(+), 3 deletions(-) > > diff --git a/src/modules/bluetooth/module-bluetooth-device.c b/src/modules/bluetooth/module-bluetooth-device.c > index 7992e12..d5240f5 100644 > --- a/src/modules/bluetooth/module-bluetooth-device.c > +++ b/src/modules/bluetooth/module-bluetooth-device.c > @@ -3077,9 +3077,6 @@ void pa__done(pa_module *m) { > if (u->card) > pa_card_free(u->card); > > - if (u->read_smoother) > - pa_smoother_free(u->read_smoother); > - > shutdown_bt(u); > > if (u->a2dp.buffer) This is now applied. -- Tanu