net/usb: kalmia: Don't pass act_len in usb_bulk_msg error path

commit c68f345b7c425b38656e1791a0486769a8797016 upstream.

syzbot reported that act_len in kalmia_send_init_packet() is
uninitialized when passing it to the first usb_bulk_msg error path. Jiri
Pirko noted that it's pointless to pass it in the error path, and that
the value that would be printed in the second error path would be the
value of act_len from the first call to usb_bulk_msg.[1]

With this in mind, let's just not pass act_len to the usb_bulk_msg error
paths.

1: https://lore.kernel.org/lkml/Y9pY61y1nwTuzMOa@nanopsycho/

Fixes: d40261236e ("net/usb: Add Samsung Kalmia driver for Samsung GT-B3730")
Reported-and-tested-by: syzbot+cd80c5ef5121bfe85b55@syzkaller.appspotmail.com
Signed-off-by: Miko Larsson <mikoxyzzz@gmail.com>
Reviewed-by: Alexander Duyck <alexanderduyck@fb.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Miko Larsson 2023-02-10 09:13:44 +01:00 committed by Greg Kroah-Hartman
parent 0c2651c763
commit a753352622

View File

@ -65,8 +65,8 @@ kalmia_send_init_packet(struct usbnet *dev, u8 *init_msg, u8 init_msg_len,
init_msg, init_msg_len, &act_len, KALMIA_USB_TIMEOUT); init_msg, init_msg_len, &act_len, KALMIA_USB_TIMEOUT);
if (status != 0) { if (status != 0) {
netdev_err(dev->net, netdev_err(dev->net,
"Error sending init packet. Status %i, length %i\n", "Error sending init packet. Status %i\n",
status, act_len); status);
return status; return status;
} }
else if (act_len != init_msg_len) { else if (act_len != init_msg_len) {
@ -83,8 +83,8 @@ kalmia_send_init_packet(struct usbnet *dev, u8 *init_msg, u8 init_msg_len,
if (status != 0) if (status != 0)
netdev_err(dev->net, netdev_err(dev->net,
"Error receiving init result. Status %i, length %i\n", "Error receiving init result. Status %i\n",
status, act_len); status);
else if (act_len != expected_len) else if (act_len != expected_len)
netdev_err(dev->net, "Unexpected init result length: %i\n", netdev_err(dev->net, "Unexpected init result length: %i\n",
act_len); act_len);