[Pcsclite-cvs-commit] r6380 - /trunk/PCSC/src/hotplug_libudev.c

rousseau at users.alioth.debian.org rousseau at users.alioth.debian.org
Fri Jun 29 14:18:32 UTC 2012


Author: rousseau
Date: Fri Jun 29 14:18:31 2012
New Revision: 6380

URL: http://svn.debian.org/wsvn/pcsclite/?sc=1&rev=6380
Log:
HPAddDevice(): check udev_device_get_sysattr_value() is not NULL

The value returned by udev_device_get_sysattr_value(dev,
"bInterfaceNumber") may be NULL (maybe the reader has been removed just
after been inserted). And atoi() do not like to work on NULL.

Modified:
    trunk/PCSC/src/hotplug_libudev.c

Modified: trunk/PCSC/src/hotplug_libudev.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/hotplug_libudev.c?rev=6380&op=diff
==============================================================================
--- trunk/PCSC/src/hotplug_libudev.c (original)
+++ trunk/PCSC/src/hotplug_libudev.c Fri Jun 29 14:18:31 2012
@@ -294,6 +294,7 @@
 	char fullname[MAX_READERNAME];
 	struct _driverTracker *driver, *classdriver;
 	const char *sSerialNumber = NULL, *sInterfaceName = NULL;
+	const char *sInterfaceNumber;
 	LONG ret;
 	int bInterfaceNumber;
 
@@ -310,8 +311,12 @@
 
 	Log2(PCSC_LOG_INFO, "Adding USB device: %s", driver->readerName);
 
-	bInterfaceNumber = atoi(udev_device_get_sysattr_value(dev,
-		"bInterfaceNumber"));
+	sInterfaceNumber = udev_device_get_sysattr_value(dev, "bInterfaceNumber");
+	if (sInterfaceNumber)
+		bInterfaceNumber = atoi(sInterfaceNumber);
+	else
+		bInterfaceNumber = 0;
+
 	(void)snprintf(deviceName, sizeof(deviceName),
 		"usb:%04x/%04x:libudev:%d:%s", driver->manuID, driver->productID,
 		bInterfaceNumber, devpath);




More information about the Pcsclite-cvs-commit mailing list