usb: return correct errno on failures
authorPan Bian <bianpan2016@163.com>
Tue, 29 Nov 2016 12:55:12 +0000 (20:55 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 29 Nov 2016 16:36:43 +0000 (17:36 +0100)
commitcd63a1c1952e169b788ee3ee2a064546ca325ea0
treeab0d6b8541211c45b8fa28fd65a3bd6c230bbe80
parentfca0ca95c34dde7e735ef322c599dfa0b4a2deae
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>
drivers/usb/wusbcore/wa-xfer.c