Jiri Slaby 93f6bc
From: Dan Carpenter <dan.carpenter@oracle.com>
Jiri Slaby 93f6bc
Date: Wed, 13 Nov 2019 21:28:31 +0300
Jiri Slaby 93f6bc
Subject: net: cdc_ncm: Signedness bug in cdc_ncm_set_dgram_size()
Jiri Slaby 93f6bc
Git-commit: a56dcc6b455830776899ce3686735f1172e12243
Jiri Slaby 93f6bc
Patch-mainline: 5.4-rc8
Jiri Slaby 93f6bc
References: git-fixes
Jiri Slaby 93f6bc
Jiri Slaby 93f6bc
This code is supposed to test for negative error codes and partial
Jiri Slaby 93f6bc
reads, but because sizeof() is size_t (unsigned) type then negative
Jiri Slaby 93f6bc
error codes are type promoted to high positive values and the condition
Jiri Slaby 93f6bc
doesn't work as expected.
Jiri Slaby 93f6bc
Jiri Slaby 93f6bc
Fixes: 332f989a3b00 ("CDC-NCM: handle incomplete transfer of MTU")
Jiri Slaby 93f6bc
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Jiri Slaby 93f6bc
Signed-off-by: David S. Miller <davem@davemloft.net>
Jiri Slaby 93f6bc
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Jiri Slaby 93f6bc
---
Jiri Slaby 93f6bc
 drivers/net/usb/cdc_ncm.c |    2 +-
Jiri Slaby 93f6bc
 1 file changed, 1 insertion(+), 1 deletion(-)
Jiri Slaby 93f6bc
Jiri Slaby 93f6bc
--- a/drivers/net/usb/cdc_ncm.c
Jiri Slaby 93f6bc
+++ b/drivers/net/usb/cdc_ncm.c
Jiri Slaby 93f6bc
@@ -577,7 +577,7 @@ static void cdc_ncm_set_dgram_size(struc
Jiri Slaby 93f6bc
 	err = usbnet_read_cmd(dev, USB_CDC_GET_MAX_DATAGRAM_SIZE,
Jiri Slaby 93f6bc
 			      USB_TYPE_CLASS | USB_DIR_IN | USB_RECIP_INTERFACE,
Jiri Slaby 93f6bc
 			      0, iface_no, &max_datagram_size, sizeof(max_datagram_size));
Jiri Slaby 93f6bc
-	if (err < sizeof(max_datagram_size)) {
Jiri Slaby 93f6bc
+	if (err != sizeof(max_datagram_size)) {
Jiri Slaby 93f6bc
 		dev_dbg(&dev->intf->dev, "GET_MAX_DATAGRAM_SIZE failed\n");
Jiri Slaby 93f6bc
 		goto out;
Jiri Slaby 93f6bc
 	}