[Spice-commits] 2 commits - src/usb-device-manager.c src/usb-device-manager-priv.h

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Aug 2 10:52:48 UTC 2019


 src/usb-device-manager-priv.h |    2 +-
 src/usb-device-manager.c      |    8 ++++++--
 2 files changed, 7 insertions(+), 3 deletions(-)

New commits:
commit 87333253cd6bac921e9b67d5c60f38a44396a8c8
Author: Frediano Ziglio <fziglio at redhat.com>
Date:   Wed Jul 31 21:18:08 2019 +0100

    usb-device-manager: Fix reference counting getting devices
    
    spice_usb_device_manager_device_to_bdev increments usb device
    counter. The function is just used to check for filter but
    than the counter is not decremented causing the object to be
    leaked later (or invalid reference counter anyway).
    Decrement the counter in any case.
    
    Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
    Acked-by: Victor Toso <victortoso at redhat.com>

diff --git a/src/usb-device-manager.c b/src/usb-device-manager.c
index 1119c7b..426a0cd 100644
--- a/src/usb-device-manager.c
+++ b/src/usb-device-manager.c
@@ -1012,8 +1012,12 @@ GPtrArray* spice_usb_device_manager_get_devices_with_filter(
         if (rules) {
             SpiceUsbBackendDevice *bdev =
                 spice_usb_device_manager_device_to_bdev(self, device);
-            if (spice_usb_backend_device_check_filter(bdev, rules, count) != 0)
+            gboolean filter_ok =
+                (spice_usb_backend_device_check_filter(bdev, rules, count) == 0);
+            spice_usb_backend_device_unref(bdev);
+            if (!filter_ok) {
                 continue;
+            }
         }
         g_ptr_array_add(devices_copy, spice_usb_device_ref(device));
     }
commit 930d9204ea83b5aabd0d98ba88dc5343878e0e5a
Author: Frediano Ziglio <fziglio at redhat.com>
Date:   Wed Jul 31 21:16:00 2019 +0100

    usb-device-manager: Fix number truncation by spice_usb_device_get_busnum
    
    "bus" field is 16 bit so returning using a guint8 type potentially
    truncate the value.
    
    Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
    Acked-by: Victor Toso <victortoso at redhat.com>

diff --git a/src/usb-device-manager-priv.h b/src/usb-device-manager-priv.h
index 66acf6d..2530d29 100644
--- a/src/usb-device-manager-priv.h
+++ b/src/usb-device-manager-priv.h
@@ -29,7 +29,7 @@ G_BEGIN_DECLS
 void spice_usb_device_manager_device_error(
     SpiceUsbDeviceManager *manager, SpiceUsbDevice *device, GError *err);
 
-guint8 spice_usb_device_get_busnum(const SpiceUsbDevice *device);
+guint16 spice_usb_device_get_busnum(const SpiceUsbDevice *device);
 guint8 spice_usb_device_get_devaddr(const SpiceUsbDevice *device);
 guint16 spice_usb_device_get_vid(const SpiceUsbDevice *device);
 guint16 spice_usb_device_get_pid(const SpiceUsbDevice *device);
diff --git a/src/usb-device-manager.c b/src/usb-device-manager.c
index 05c7d97..1119c7b 100644
--- a/src/usb-device-manager.c
+++ b/src/usb-device-manager.c
@@ -1490,7 +1490,7 @@ static SpiceUsbDevice *spice_usb_device_new(SpiceUsbBackendDevice *bdev)
     return info;
 }
 
-guint8 spice_usb_device_get_busnum(const SpiceUsbDevice *info)
+guint16 spice_usb_device_get_busnum(const SpiceUsbDevice *info)
 {
     const UsbDeviceInformation *b_info;
 


More information about the Spice-commits mailing list