diff options
author | Jesper Juhl <jj@chaosbits.net> | 2012-08-07 11:56:26 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-08-08 16:04:47 -0700 |
commit | 47dffc7547ed3b105dabd570ed864347687beac2 (patch) | |
tree | 92cedaf0ddd3ea1e6d7c18dae57f3f268852cf42 /kernel/timeconst.pl | |
parent | 155e4e12b9f49c2dc817bb4c44e9416c46833c3d (diff) | |
download | blackbird-op-linux-47dffc7547ed3b105dabd570ed864347687beac2.tar.gz blackbird-op-linux-47dffc7547ed3b105dabd570ed864347687beac2.zip |
cdc-phonet: Don't leak in usbpn_open
We allocate memory for 'req' with usb_alloc_urb() and then test
'if (!req || rx_submit(pnd, req, GFP_KERNEL | __GFP_COLD))'.
If we enter that branch due to '!req' then there is no problem. But if
we enter the branch due to 'req' being != 0 and the 'rx_submit()' call
being false, then we'll leak the memory we allocated.
Deal with the leak by always calling 'usb_free_urb(req)' when entering
the branch. If 'req' happens to be 0 then the call is harmless, if it
is not 0 then we free the memory we allocated but don't need.
Signed-off-by: Jesper Juhl <jj@chaosbits.net>
Acked-by: Rémi Denis-Courmont <remi@remlab.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'kernel/timeconst.pl')
0 files changed, 0 insertions, 0 deletions