* [PATCH] android/hidhost: Fix uhid create failure case
@ 2013-11-12 9:47 Ravi kumar Veeramally
2013-11-12 13:28 ` Johan Hedberg
0 siblings, 1 reply; 2+ messages in thread
From: Ravi kumar Veeramally @ 2013-11-12 9:47 UTC (permalink / raw)
To: linux-bluetooth; +Cc: Ravi kumar Veeramally
If uhid open or create fails then notify state and free the device.
Otherwise it replies bogus success return value on connect request.
---
android/hidhost.c | 19 +++++--------------
1 file changed, 5 insertions(+), 14 deletions(-)
diff --git a/android/hidhost.c b/android/hidhost.c
index 683938f..491eacd 100644
--- a/android/hidhost.c
+++ b/android/hidhost.c
@@ -514,6 +514,7 @@ static int uhid_create(struct hid_device *dev)
error("Failed to create uHID device: %s", strerror(errno));
close(dev->uhid_fd);
dev->uhid_fd = -1;
+ bt_hid_notify_state(dev, HAL_HIDHOST_STATE_NO_HID);
return -errno;
}
@@ -534,8 +535,10 @@ static void interrupt_connect_cb(GIOChannel *chan, GError *conn_err,
DBG("");
- if (conn_err)
+ if (conn_err) {
+ error("%s", conn_err->message);
goto failed;
+ }
if (uhid_create(dev) < 0)
goto failed;
@@ -549,19 +552,7 @@ static void interrupt_connect_cb(GIOChannel *chan, GError *conn_err,
return;
failed:
- /* So we guarantee the interrupt channel is closed before the
- * control channel (if we only do unref GLib will close it only
- * after returning control to the mainloop */
- if (!conn_err)
- g_io_channel_shutdown(dev->intr_io, FALSE, NULL);
-
- g_io_channel_unref(dev->intr_io);
- dev->intr_io = NULL;
-
- if (dev->ctrl_io) {
- g_io_channel_unref(dev->ctrl_io);
- dev->ctrl_io = NULL;
- }
+ hid_device_free(dev);
}
static void control_connect_cb(GIOChannel *chan, GError *conn_err,
--
1.8.3.2
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2013-11-12 13:28 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-11-12 9:47 [PATCH] android/hidhost: Fix uhid create failure case Ravi kumar Veeramally
2013-11-12 13:28 ` Johan Hedberg
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).