mirror of
https://github.com/LineageOS/android_kernel_fxtec_sm6115.git
synced 2026-08-18 13:21:06 +00:00
USB: serial: omninet: fix memory corruption with small endpoint
commit 60df93d30f9bdd27db17c4d80ed80ef718d7226b upstream.
Make sure that the bulk-out buffers are at least as large as the
hardcoded transfer size to avoid user-controlled slab corruption should
a malicious device report a smaller endpoint max packet size than
expected.
Fixes: 1da177e4c3 ("Linux-2.6.12-rc2")
Cc: stable@vger.kernel.org
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Ulrich Hecht <uli@kernel.org>
This commit is contained in:
committed by
Ulrich Hecht
parent
08a68de7b0
commit
3bb3bfc137
@ -30,6 +30,10 @@
|
||||
/* This one seems to be a re-branded ZyXEL device */
|
||||
#define BT_IGNITIONPRO_ID 0x2000
|
||||
|
||||
#define OMNINET_HEADERLEN 4
|
||||
#define OMNINET_BULKOUTSIZE 64
|
||||
#define OMNINET_PAYLOADSIZE (OMNINET_BULKOUTSIZE - OMNINET_HEADERLEN)
|
||||
|
||||
/* function prototypes */
|
||||
static void omninet_process_read_urb(struct urb *urb);
|
||||
static int omninet_prepare_write_buffer(struct usb_serial_port *port,
|
||||
@ -55,6 +59,7 @@ static struct usb_serial_driver zyxel_omninet_device = {
|
||||
.description = "ZyXEL - omni.net lcd plus usb",
|
||||
.id_table = id_table,
|
||||
.num_bulk_out = 2,
|
||||
.bulk_out_size = OMNINET_BULKOUTSIZE,
|
||||
.calc_num_ports = omninet_calc_num_ports,
|
||||
.port_probe = omninet_port_probe,
|
||||
.port_remove = omninet_port_remove,
|
||||
@ -133,10 +138,6 @@ static int omninet_port_remove(struct usb_serial_port *port)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define OMNINET_HEADERLEN 4
|
||||
#define OMNINET_BULKOUTSIZE 64
|
||||
#define OMNINET_PAYLOADSIZE (OMNINET_BULKOUTSIZE - OMNINET_HEADERLEN)
|
||||
|
||||
static void omninet_process_read_urb(struct urb *urb)
|
||||
{
|
||||
struct usb_serial_port *port = urb->context;
|
||||
|
||||
Reference in New Issue
Block a user