In some situations, a connect callback is created, but
this callback is not added to media_owner. Thus when the owner
is destroyed and at rfcomm disconnect, the callback is executed
with an invalid pointer.
---
audio/gateway.c | 5 +----
1 files changed, 1 insertions(+), 4 deletions(-)
diff --git a/audio/gateway.c b/audio/gateway.c
index 163f7b5..131f93f 100644
--- a/audio/gateway.c
+++ b/audio/gateway.c
@@ -836,12 +836,9 @@ unsigned int gateway_request_stream(struct audio_device *dev,
gateway_stream_cb_t cb, void *user_data)
{
struct gateway *gw = dev->gateway;
- unsigned int id;
GError *err = NULL;
GIOChannel *io;
- id = connect_cb_new(gw, cb, user_data);
-
if (!gw->rfcomm)
get_records(dev);
else if (!gw->sco) {@@ -858,7 +855,7 @@ unsigned int gateway_request_stream(struct audio_device *dev,
} else
g_idle_add(request_stream_cb, dev);
- return id;
+ return connect_cb_new(gw, cb, user_data);
}
int gateway_config_stream(struct audio_device *dev, gateway_stream_cb_t cb,
--
1.7.5.4