Re: [PATCH] usb: fix leak of descriptor buffer on hub_enable_device failure

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Dan,

Can you send me an updated patch for commit 1e6ed41e7e29 that includes
this fix?  I haven't queued this to Greg yet, and I would like to avoid
introducing bugs on bisect.

Thanks,
Sarah Sharp

On Thu, Dec 05, 2013 at 10:00:00AM -0800, Dan Williams wrote:
> Smatch says:
> drivers/usb/core/hub.c:4324 hub_port_init() warn: possible memory leak of 'buf'
> 
> Fixes: 1e6ed41e7e29 ("usb: xhci: change enumeration scheme to 'new scheme' by default")
> Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
> Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
> ---
>  drivers/usb/core/hub.c |    8 ++++----
>  1 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
> index 98a8af51d8a4..704f164b37d6 100644
> --- a/drivers/usb/core/hub.c
> +++ b/drivers/usb/core/hub.c
> @@ -4137,6 +4137,10 @@ hub_port_init (struct usb_hub *hub, struct usb_device *udev, int port1,
>  			int r = 0;
>  
>  			did_new_scheme = true;
> +			retval = hub_enable_device(udev);
> +			if (retval < 0)
> +				goto fail;
> +
>  #define GET_DESCRIPTOR_BUFSIZE	64
>  			buf = kmalloc(GET_DESCRIPTOR_BUFSIZE, GFP_NOIO);
>  			if (!buf) {
> @@ -4144,10 +4148,6 @@ hub_port_init (struct usb_hub *hub, struct usb_device *udev, int port1,
>  				continue;
>  			}
>  
> -			retval = hub_enable_device(udev);
> -			if (retval < 0)
> -				goto fail;
> -
>  			/* Retry on all errors; some devices are flakey.
>  			 * 255 is for WUSB devices, we actually need to use
>  			 * 512 (WUSB1.0[4.8.1]).
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux