From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <1386864988.1982.45.camel@nuvo> Subject: [PATCH] sixaxis: Fix device detection From: Bastien Nocera To: linux-bluetooth@vger.kernel.org Date: Thu, 12 Dec 2013 17:16:28 +0100 Content-Type: text/plain; charset="UTF-8" Mime-Version: 1.0 Sender: linux-bluetooth-owner@vger.kernel.org List-ID: After searching past the end of the structure, the loop sometimes found matches in the daemon's address space... This fixes the loop to end after the elements have been exhausted. --- plugins/sixaxis.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/sixaxis.c b/plugins/sixaxis.c index 45fa170..1154c15 100644 --- a/plugins/sixaxis.c +++ b/plugins/sixaxis.c @@ -301,7 +301,7 @@ static int get_supported_device(struct udev_device *udevice, uint16_t *bus) struct udev_device *hid_parent; uint16_t vid, pid; const char *hid_id; - int i; + guint i; hid_parent = udev_device_get_parent_with_subsystem_devtype(udevice, "hid", NULL); @@ -313,7 +313,7 @@ static int get_supported_device(struct udev_device *udevice, uint16_t *bus) if (sscanf(hid_id, "%hx:%hx:%hx", bus, &vid, &pid) != 3) return -1; - for (i = 0; G_N_ELEMENTS(devices); i++) { + for (i = 0; i < G_N_ELEMENTS(devices); i++) { if (devices[i].vid == vid && devices[i].pid == pid) return i; } -- 1.8.4.2