[pulseaudio-discuss] [PATCH] bluetooth: Don't free read_smoother in pa__done().

Tanu Kaskinen tanuk at iki.fi
Sat Dec 15 22:30:37 PST 2012


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



More information about the pulseaudio-discuss mailing list