2020-09-16 22:35:43

by Sonny Sasaka

[permalink] [raw]
Subject: [PATCH BlueZ v2] sixaxis: Fix crash caused by return of udev_device_get_property_value

From: Miao-chen Chou <[email protected]>

This adds a NULL check before calling sscanf().

Reviewed-by: Yoni Shavit <[email protected]>
Reviewed-by: Alain Michaud <[email protected]>

---
plugins/sixaxis.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/plugins/sixaxis.c b/plugins/sixaxis.c
index 939fed759..996f85dd6 100644
--- a/plugins/sixaxis.c
+++ b/plugins/sixaxis.c
@@ -411,7 +411,7 @@ get_pairing_type_for_device(struct udev_device *udevice, uint16_t *bus,

hid_id = udev_device_get_property_value(hid_parent, "HID_ID");

- if (sscanf(hid_id, "%hx:%hx:%hx", bus, &vid, &pid) != 3)
+ if (!hid_id || sscanf(hid_id, "%hx:%hx:%hx", bus, &vid, &pid) != 3)
return NULL;

cp = get_pairing(vid, pid);
--
2.26.2


2020-09-17 09:49:43

by Bastien Nocera

[permalink] [raw]
Subject: Re: [PATCH BlueZ v2] sixaxis: Fix crash caused by return of udev_device_get_property_value

On Wed, 2020-09-16 at 15:34 -0700, Sonny Sasaka wrote:
> From: Miao-chen Chou <[email protected]>
>
> This adds a NULL check before calling sscanf().
>
> Reviewed-by: Yoni Shavit <[email protected]>
> Reviewed-by: Alain Michaud <[email protected]>

Looks good.

Reviewed-by: Bastien Nocera <[email protected]>

2020-09-17 17:08:51

by Luiz Augusto von Dentz

[permalink] [raw]
Subject: Re: [PATCH BlueZ v2] sixaxis: Fix crash caused by return of udev_device_get_property_value

Hi Sonny,

On Wed, Sep 16, 2020 at 3:37 PM Sonny Sasaka <[email protected]> wrote:
>
> From: Miao-chen Chou <[email protected]>
>
> This adds a NULL check before calling sscanf().
>
> Reviewed-by: Yoni Shavit <[email protected]>
> Reviewed-by: Alain Michaud <[email protected]>
>
> ---
> plugins/sixaxis.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/plugins/sixaxis.c b/plugins/sixaxis.c
> index 939fed759..996f85dd6 100644
> --- a/plugins/sixaxis.c
> +++ b/plugins/sixaxis.c
> @@ -411,7 +411,7 @@ get_pairing_type_for_device(struct udev_device *udevice, uint16_t *bus,
>
> hid_id = udev_device_get_property_value(hid_parent, "HID_ID");
>
> - if (sscanf(hid_id, "%hx:%hx:%hx", bus, &vid, &pid) != 3)
> + if (!hid_id || sscanf(hid_id, "%hx:%hx:%hx", bus, &vid, &pid) != 3)
> return NULL;
>
> cp = get_pairing(vid, pid);
> --
> 2.26.2

Applied, thanks.

--
Luiz Augusto von Dentz