Re: [PATCH] net: ax88179: add proper error handling of usb read errors

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi David,

one more small comment

On 4/16/22 10:48, David Kahurani wrote:
Reads that are lesser than the requested size lead to uninit-value bugs.
In this particular case a variable which was supposed to be initialized
after a read is left uninitialized after a partial read.

Qualify such reads as errors and handle them correctly and while at it
convert the reader functions to return zero on success for easier error
handling.

Fixes: e2ca90c276e1 ("ax88179_178a: ASIX AX88179_178A USB 3.0/2.0 to
gigabit ethernet adapter driver")
Signed-off-by: David Kahurani <k.kahurani@xxxxxxxxx>
Reported-and-tested-by: syzbot+d3dbdf31fbe9d8f5f311@xxxxxxxxxxxxxxxxxxxxxxxxx
---

[code snip]

@@ -1295,6 +1439,7 @@ static int ax88179_led_setting(struct usbnet *dev)
  static void ax88179_get_mac_addr(struct usbnet *dev)
  {
  	u8 mac[ETH_ALEN];
+	int ret;
memset(mac, 0, sizeof(mac)); @@ -1303,8 +1448,12 @@ static void ax88179_get_mac_addr(struct usbnet *dev)
  		netif_dbg(dev, ifup, dev->net,
  			  "MAC address read from device tree");
  	} else {
-		ax88179_read_cmd(dev, AX_ACCESS_MAC, AX_NODE_ID, ETH_ALEN,
-				 ETH_ALEN, mac);
+		ret = ax88179_read_cmd(dev, AX_ACCESS_MAC, AX_NODE_ID, ETH_ALEN,
+				       ETH_ALEN, mac);
+
+		if (ret)
+			netdev_dbg(dev->net, "Failed to read NODE_ID: %d", ret);
+
  		netif_dbg(dev, ifup, dev->net,
  			  "MAC address read from ASIX chip");
  	}


This message sequence is confusing.

In case of ax88179_read_cmd() failure mac read from device actually failed, but message says, that it was successfully finished.





With regards,
Pavel Skripkin

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux