mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-02 23:27:06 +00:00
usb: return correct errno on failures
In function __wa_xfer_setup_segs(), variable result takes the return value. Its value should be a negative errno on failures. Because result may be reassigned in a loop, and its value is guaranteed to be not less than 0 during the following repeats of the loop. So when the call to kmalloc() or usb_alloc_urb() fails in the loop, the value of variable result may be 0 (indicates no error), which is inconsistent with the execution status. This patch fixes the bug, initializing variable result with -ENOMEM in the loop. Signed-off-by: Pan Bian <bianpan2016@163.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
fca0ca95c3
commit
cd63a1c195
1 changed files with 1 additions and 0 deletions
|
@ -1203,6 +1203,7 @@ static int __wa_xfer_setup_segs(struct wa_xfer *xfer, size_t xfer_hdr_size)
|
||||||
sizeof(struct wa_xfer_packet_info_hwaiso) +
|
sizeof(struct wa_xfer_packet_info_hwaiso) +
|
||||||
(seg_isoc_frame_count * sizeof(__le16));
|
(seg_isoc_frame_count * sizeof(__le16));
|
||||||
}
|
}
|
||||||
|
result = -ENOMEM;
|
||||||
seg = xfer->seg[cnt] = kmalloc(alloc_size + iso_pkt_descr_size,
|
seg = xfer->seg[cnt] = kmalloc(alloc_size + iso_pkt_descr_size,
|
||||||
GFP_ATOMIC);
|
GFP_ATOMIC);
|
||||||
if (seg == NULL)
|
if (seg == NULL)
|
||||||
|
|
Loading…
Reference in a new issue