Подробности

[В начало]

Проблема в реализации № L0028

Краткое описание

drivers/input/tablet/wacom_sys.c: нет usb_free_urb на ошибочном пути

Подробное описание

В файле drivers/input/tablet/wacom_sys.c в функции wacom_probe после ошибки мы можем перейти на метку label2. В этом случае не будет вызвана функция usb_free_urb.

        wacom->irq = usb_alloc_urb(0, GFP_KERNEL);

        ...

        /* Retrieve the physical and logical size for OEM devices */
        error = wacom_retrieve_hid_descriptor(intf, features);
        if (error)
                goto fail2;
        ...
         fail3: usb_free_urb(wacom->irq);
         fail2: usb_free_coherent(dev, WACOM_PKGLEN_MAX, wacom_wac->data, wacom->data_dma);

Способы устранения

---
 drivers/input/tablet/wacom_sys.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/input/tablet/wacom_sys.c b/drivers/input/tablet/wacom_sys.c
index fc38149..cf8fb9f 100644
--- a/drivers/input/tablet/wacom_sys.c
+++ b/drivers/input/tablet/wacom_sys.c
@@ -519,7 +519,7 @@ static int wacom_probe(struct usb_interface *intf, const struct usb_device_id *i
        /* Retrieve the physical and logical size for OEM devices */
        error = wacom_retrieve_hid_descriptor(intf, features);
        if (error)
-               goto fail2;
+               goto fail3;
 
        wacom_setup_device_quirks(features);
 
-- 
1.7.1

Компонент

linux-kernel 2.6.37

Принято

https://lkml.org/lkml/2011/2/9/21
commit

Статус

Исправлено в ядре 2.6.38-rc5

[В начало]