[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