summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohan Hedberg <johan.hedberg@nokia.com>2009-02-23 13:44:51 +0200
committerJohan Hedberg <johan.hedberg@nokia.com>2009-02-23 13:44:51 +0200
commit7acf10a2b74d21c3548d6bea635db702688f82fa (patch)
treec4906bf6dff3dda0abb706e722258e64be1f103b
parente77b283923d8029a0d10623b7d6359f86fcbb0d7 (diff)
Reject multiple interrupt or control connect attepts
-rw-r--r--input/device.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/input/device.c b/input/device.c
index 42c2b2ba..d9db92db 100644
--- a/input/device.c
+++ b/input/device.c
@@ -1201,9 +1201,13 @@ int input_device_set_channel(const bdaddr_t *src, const bdaddr_t *dst, int psm,
switch (psm) {
case L2CAP_PSM_HIDP_CTRL:
+ if (iconn->ctrl_io)
+ return -EALREADY;
iconn->ctrl_io = g_io_channel_ref(io);
break;
case L2CAP_PSM_HIDP_INTR:
+ if (iconn->intr_io)
+ return -EALREADY;
iconn->intr_io = g_io_channel_ref(io);
break;
}