From: Mikel Astiz <mikel.astiz@xxxxxxxxxxxx> In the unlikely case of service record allocation error, the io channel should be dereferenced. --- audio/manager.c | 11 +++++++---- 1 files changed, 7 insertions(+), 4 deletions(-) diff --git a/audio/manager.c b/audio/manager.c index 0e09f2f..ddefd41 100644 --- a/audio/manager.c +++ b/audio/manager.c @@ -763,20 +763,23 @@ static int gateway_server_init(struct audio_adapter *adapter) record = hfp_hs_record(chan); if (!record) { error("Unable to allocate new service record"); - return -1; + goto failed; } if (add_record_to_server(&src, record) < 0) { error("Unable to register HFP HS service record"); sdp_record_free(record); - g_io_channel_unref(adapter->hfp_hs_server); - adapter->hfp_hs_server = NULL; - return -1; + goto failed; } adapter->hfp_hs_record_id = record->handle; return 0; + +failed: + g_io_channel_unref(adapter->hfp_hs_server); + adapter->hfp_hs_server = NULL; + return -1; } static int audio_probe(struct btd_device *device, GSList *uuids) -- 1.7.7.6 -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html