linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/4] android/socket: Cleanup sockets on unregister
@ 2013-12-02 15:46 Andrei Emeltchenko
  2013-12-02 15:46 ` [PATCH 2/4] android/a2dp: Fix possible NULL dereference Andrei Emeltchenko
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Andrei Emeltchenko @ 2013-12-02 15:46 UTC (permalink / raw)
  To: linux-bluetooth

From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>

This cleans up rfsock structures closing all sockets and making general cleanup
for servers and for connections. This will be called form socket unregister.
---
 android/socket.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/android/socket.c b/android/socket.c
index 76b40c8..4502e90 100644
--- a/android/socket.c
+++ b/android/socket.c
@@ -93,8 +93,10 @@ static struct rfcomm_sock *create_rfsock(int sock, int *hal_fd)
 	return rfsock;
 }
 
-static void cleanup_rfsock(struct rfcomm_sock *rfsock)
+static void cleanup_rfsock(gpointer data)
 {
+	struct rfcomm_sock *rfsock = data;
+
 	DBG("rfsock: %p fd %d real_sock %d chan %u",
 		rfsock, rfsock->fd, rfsock->real_sock, rfsock->channel);
 
@@ -936,5 +938,8 @@ void bt_socket_unregister(void)
 {
 	DBG("");
 
+	g_list_free_full(connections, cleanup_rfsock);
+	g_list_free_full(servers, cleanup_rfsock);
+
 	ipc_unregister(HAL_SERVICE_ID_SOCK);
 }
-- 
1.8.3.2


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/4] android/a2dp: Fix possible NULL dereference
  2013-12-02 15:46 [PATCH 1/4] android/socket: Cleanup sockets on unregister Andrei Emeltchenko
@ 2013-12-02 15:46 ` Andrei Emeltchenko
  2013-12-02 15:46 ` [PATCH 3/4] android/pan: Remove unneeded NULL assignment Andrei Emeltchenko
  2013-12-02 15:46 ` [PATCH 4/4] android/pan: Fix no return on error path Andrei Emeltchenko
  2 siblings, 0 replies; 4+ messages in thread
From: Andrei Emeltchenko @ 2013-12-02 15:46 UTC (permalink / raw)
  To: linux-bluetooth

From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>

Since a2dp_record may return NULL, check return value. This
silences static analysers tools.
---
 android/a2dp.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/android/a2dp.c b/android/a2dp.c
index 98c138e..324a211 100644
--- a/android/a2dp.c
+++ b/android/a2dp.c
@@ -366,9 +366,10 @@ bool bt_a2dp_register(const bdaddr_t *addr)
 	}
 
 	rec = a2dp_record();
-	if (bt_adapter_add_record(rec, SVC_HINT_CAPTURING) < 0) {
+	if (!rec || bt_adapter_add_record(rec, SVC_HINT_CAPTURING) < 0) {
 		error("Failed to register on A2DP record");
-		sdp_record_free(rec);
+		if (rec)
+			sdp_record_free(rec);
 		g_io_channel_shutdown(server, TRUE, NULL);
 		g_io_channel_unref(server);
 		server = NULL;
-- 
1.8.3.2


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 3/4] android/pan: Remove unneeded NULL assignment
  2013-12-02 15:46 [PATCH 1/4] android/socket: Cleanup sockets on unregister Andrei Emeltchenko
  2013-12-02 15:46 ` [PATCH 2/4] android/a2dp: Fix possible NULL dereference Andrei Emeltchenko
@ 2013-12-02 15:46 ` Andrei Emeltchenko
  2013-12-02 15:46 ` [PATCH 4/4] android/pan: Fix no return on error path Andrei Emeltchenko
  2 siblings, 0 replies; 4+ messages in thread
From: Andrei Emeltchenko @ 2013-12-02 15:46 UTC (permalink / raw)
  To: linux-bluetooth

From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>

---
 android/pan.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/android/pan.c b/android/pan.c
index 3270aa4..8e719b2 100644
--- a/android/pan.c
+++ b/android/pan.c
@@ -81,7 +81,6 @@ static void pan_device_free(struct pan_device *dev)
 
 	devices = g_slist_remove(devices, dev);
 	g_free(dev);
-	dev = NULL;
 }
 
 static void bt_pan_notify_conn_state(struct pan_device *dev, uint8_t state)
-- 
1.8.3.2


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 4/4] android/pan: Fix no return on error path
  2013-12-02 15:46 [PATCH 1/4] android/socket: Cleanup sockets on unregister Andrei Emeltchenko
  2013-12-02 15:46 ` [PATCH 2/4] android/a2dp: Fix possible NULL dereference Andrei Emeltchenko
  2013-12-02 15:46 ` [PATCH 3/4] android/pan: Remove unneeded NULL assignment Andrei Emeltchenko
@ 2013-12-02 15:46 ` Andrei Emeltchenko
  2 siblings, 0 replies; 4+ messages in thread
From: Andrei Emeltchenko @ 2013-12-02 15:46 UTC (permalink / raw)
  To: linux-bluetooth

From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>

This fixes possible crash in case connect fails.
---
 android/pan.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/android/pan.c b/android/pan.c
index 8e719b2..1c1015a 100644
--- a/android/pan.c
+++ b/android/pan.c
@@ -172,6 +172,7 @@ static void connect_cb(GIOChannel *chan, GError *err, gpointer data)
 		error("%s", err->message);
 		bt_pan_notify_conn_state(dev, HAL_PAN_STATE_DISCONNECTED);
 		pan_device_free(dev);
+		return;
 	}
 
 	src = (local_role == HAL_PAN_ROLE_NAP) ? BNEP_SVC_NAP : BNEP_SVC_PANU;
-- 
1.8.3.2


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2013-12-02 15:46 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-12-02 15:46 [PATCH 1/4] android/socket: Cleanup sockets on unregister Andrei Emeltchenko
2013-12-02 15:46 ` [PATCH 2/4] android/a2dp: Fix possible NULL dereference Andrei Emeltchenko
2013-12-02 15:46 ` [PATCH 3/4] android/pan: Remove unneeded NULL assignment Andrei Emeltchenko
2013-12-02 15:46 ` [PATCH 4/4] android/pan: Fix no return on error path Andrei Emeltchenko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).