<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">ChangeSet 1.1117.2.4, 2003/02/28 13:41:54-08:00, baldrick@wanadoo.fr

[PATCH] USB speedtouch: handle usb_string failure


 drivers/usb/misc/speedtouch.c |   12 ++++--------
 1 files changed, 4 insertions(+), 8 deletions(-)


diff -Nru a/drivers/usb/misc/speedtouch.c b/drivers/usb/misc/speedtouch.c
--- a/drivers/usb/misc/speedtouch.c	Fri Feb 28 14:48:18 2003
+++ b/drivers/usb/misc/speedtouch.c	Fri Feb 28 14:48:18 2003
@@ -892,7 +892,6 @@
 	int ifnum = intf-&gt;altsetting-&gt;desc.bInterfaceNumber;
 	struct udsl_instance_data *instance;
 	unsigned char mac_str [13];
-	unsigned char mac [6];
 	int i, length;
 	char *buf;
 
@@ -995,13 +994,10 @@
 	instance-&gt;atm_dev-&gt;link_rate = 128 * 1000 / 424;
 
 	/* set MAC address, it is stored in the serial number */
-	usb_string (instance-&gt;usb_dev, instance-&gt;usb_dev-&gt;descriptor.iSerialNumber, mac_str, 13);
-	for (i = 0; i &lt; 6; i++)
-		mac[i] = (hex2int (mac_str[i * 2]) * 16) + (hex2int (mac_str[i * 2 + 1]));
-
-	dbg ("MAC is %02x:%02x:%02x:%02x:%02x:%02x", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
-
-	memcpy (instance-&gt;atm_dev-&gt;esi, mac, 6);
+	memset (instance-&gt;atm_dev-&gt;esi, 0, sizeof (instance-&gt;atm_dev-&gt;esi));
+	if (usb_string (dev, dev-&gt;descriptor.iSerialNumber, mac_str, sizeof (mac_str)) == 12)
+		for (i = 0; i &lt; 6; i++)
+			instance-&gt;atm_dev-&gt;esi[i] = (hex2int (mac_str[i * 2]) * 16) + (hex2int (mac_str[i * 2 + 1]));
 
 	/* device description */
 	buf = instance-&gt;description;
</pre></body></html>