diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-26 13:26:36 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-26 13:26:36 -0400 |
| commit | 1d47091ac6bf1286d708ebcd3f2b69d7c682916b (patch) | |
| tree | f510529446a77f96289f1c244a53d4de3ac7b812 /drivers/usb/serial/opticon.c | |
| parent | 6ad2c73d11d32994b7e9a605ee93e97b13c41f78 (diff) | |
| parent | 1d63f24697b1259921f08ad3684502216c1cd793 (diff) | |
Merge tag 'usb-3.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
Pull USB fixes from Greg Kroah-Hartman:
"Here are a bunch of USB fixes for the 3.7-rc tree.
There's a lot of small USB serial driver fixes, and one larger one
(the mos7840 driver changes are mostly just moving code around to fix
problems.) Thanks to Johan Hovold for finding the problems and fixing
them all up.
Other than those, there is the usual new device ids, xhci bugfixes,
and gadget driver fixes, nothing out of the ordinary.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>"
* tag 'usb-3.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (49 commits)
xhci: trivial: Remove assigned but unused ep_ctx.
xhci: trivial: Remove assigned but unused slot_ctx.
xhci: Fix missing break in xhci_evaluate_context_result.
xhci: Fix potential NULL ptr deref in command cancellation.
ehci: Add yet-another Lucid nohandoff pci quirk
ehci: fix Lucid nohandoff pci quirk to be more generic with BIOS versions
USB: mos7840: fix port_probe flow
USB: mos7840: fix port-data memory leak
USB: mos7840: remove invalid disconnect handling
USB: mos7840: remove NULL-urb submission
USB: qcserial: fix interface-data memory leak in error path
USB: option: fix interface-data memory leak in error path
USB: ipw: fix interface-data memory leak in error path
USB: mos7840: fix port-device leak in error path
USB: mos7840: fix urb leak at release
USB: sierra: fix port-data memory leak
USB: sierra: fix memory leak in probe error path
USB: sierra: fix memory leak in attach error path
USB: usb-wwan: fix multiple memory leaks in error paths
USB: keyspan: fix NULL-pointer dereferences and memory leaks
...
Diffstat (limited to 'drivers/usb/serial/opticon.c')
| -rw-r--r-- | drivers/usb/serial/opticon.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/usb/serial/opticon.c b/drivers/usb/serial/opticon.c index 41b1647306eb..6aba731d4864 100644 --- a/drivers/usb/serial/opticon.c +++ b/drivers/usb/serial/opticon.c | |||
| @@ -155,7 +155,11 @@ static int send_control_msg(struct usb_serial_port *port, u8 requesttype, | |||
| 155 | { | 155 | { |
| 156 | struct usb_serial *serial = port->serial; | 156 | struct usb_serial *serial = port->serial; |
| 157 | int retval; | 157 | int retval; |
| 158 | u8 buffer[2]; | 158 | u8 *buffer; |
| 159 | |||
| 160 | buffer = kzalloc(1, GFP_KERNEL); | ||
| 161 | if (!buffer) | ||
| 162 | return -ENOMEM; | ||
| 159 | 163 | ||
| 160 | buffer[0] = val; | 164 | buffer[0] = val; |
| 161 | /* Send the message to the vendor control endpoint | 165 | /* Send the message to the vendor control endpoint |
| @@ -164,6 +168,7 @@ static int send_control_msg(struct usb_serial_port *port, u8 requesttype, | |||
| 164 | requesttype, | 168 | requesttype, |
| 165 | USB_DIR_OUT|USB_TYPE_VENDOR|USB_RECIP_INTERFACE, | 169 | USB_DIR_OUT|USB_TYPE_VENDOR|USB_RECIP_INTERFACE, |
| 166 | 0, 0, buffer, 1, 0); | 170 | 0, 0, buffer, 1, 0); |
| 171 | kfree(buffer); | ||
| 167 | 172 | ||
| 168 | return retval; | 173 | return retval; |
| 169 | } | 174 | } |
| @@ -281,7 +286,7 @@ static int opticon_write(struct tty_struct *tty, struct usb_serial_port *port, | |||
| 281 | if (!dr) { | 286 | if (!dr) { |
| 282 | dev_err(&port->dev, "out of memory\n"); | 287 | dev_err(&port->dev, "out of memory\n"); |
| 283 | count = -ENOMEM; | 288 | count = -ENOMEM; |
| 284 | goto error; | 289 | goto error_no_dr; |
| 285 | } | 290 | } |
| 286 | 291 | ||
| 287 | dr->bRequestType = USB_TYPE_VENDOR | USB_RECIP_INTERFACE | USB_DIR_OUT; | 292 | dr->bRequestType = USB_TYPE_VENDOR | USB_RECIP_INTERFACE | USB_DIR_OUT; |
| @@ -311,6 +316,8 @@ static int opticon_write(struct tty_struct *tty, struct usb_serial_port *port, | |||
| 311 | 316 | ||
| 312 | return count; | 317 | return count; |
| 313 | error: | 318 | error: |
| 319 | kfree(dr); | ||
| 320 | error_no_dr: | ||
| 314 | usb_free_urb(urb); | 321 | usb_free_urb(urb); |
| 315 | error_no_urb: | 322 | error_no_urb: |
| 316 | kfree(buffer); | 323 | kfree(buffer); |
