Re: [PATCH] USB: visor: fix null-deref at probe

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

 



Hello, Johan,

Thank you for noting this. It looks like indeed

    if (serial->num_bulk_out < 2)

covers the condition

    if (serial->num_ports < 2)

so the 2nd can be removed. I'll post next version
patch for clio_5_attach() for the review in a while.

Best regards,
Vladis Dronov | Red Hat, Inc. | Product Security Engineer

----- Original Message -----
From: "Johan Hovold" <johan@xxxxxxxxxx>
To: linux-usb@xxxxxxxxxxxxxxx
Cc: "Vladis Dronov" <vdronov@xxxxxxxxxx>, "Johan Hovold" <johan@xxxxxxxxxx>, "stable" <stable@xxxxxxxxxxxxxxx>
Sent: Tuesday, January 12, 2016 12:08:50 PM
Subject: Re: [PATCH] USB: visor: fix null-deref at probe

On Tue, Jan 12, 2016 at 12:05:20PM +0100, Johan Hovold wrote:
> Fix null-pointer dereference at probe should a (malicious) Treo device
> lack the expected endpoints.
> 
> Specifically, the Treo port-setup hack was dereferencing the bulk-in and
> interrupt-in urbs without first making sure they had been allocated by
> core.
> 
> Cc: stable <stable@xxxxxxxxxxxxxxx>
> Signed-off-by: Johan Hovold <johan@xxxxxxxxxx>
> ---

Vladis, 

turns out the Treo devices had a similar problem.

You should be able to just use just

	if (serial->num_bulk_out < 2)
		return -ENODEV;

for your case.

>  drivers/usb/serial/visor.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/usb/serial/visor.c b/drivers/usb/serial/visor.c
> index 60afb39eb73c..c53fbb3e0b8c 100644
> --- a/drivers/usb/serial/visor.c
> +++ b/drivers/usb/serial/visor.c
> @@ -544,6 +544,11 @@ static int treo_attach(struct usb_serial *serial)
>  		(serial->num_interrupt_in == 0))
>  		return 0;
>  
> +	if (serial->num_bulk_in < 2 || serial->num_interrupt_in < 2) {
> +		dev_err(&serial->interface->dev, "missing endpoints\n");
> +		return -ENODEV;
> +	}
> +
>  	/*
>  	* It appears that Treos and Kyoceras want to use the
>  	* 1st bulk in endpoint to communicate with the 2nd bulk out endpoint,

Thanks,
Johan
--
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