Le 22/03/11 11:08, Harald Welte a écrit :
Package: pcscd
Version: 1.7.0-2
Severity: normal
Tags: sid

As soon as any of my CCID readers is hot-plugged, pcscd crashes.

I've tried this with
* Omnikey 3121
* Omnikey 5121
* Omnikey 5321
* Cherry ST-1000 U
* Reiner SCT CyberJack USB

Log file:
nataraja:~# pcscd -f -a -d
00000000 debuglog.c:277:DebugLogSetLevel() debug level=debug
00000575 configfile.l:245:DBGetReaderListDir() Parsing conf directory: 
/etc/reader.conf.d
00000053 configfile.l:287:DBGetReaderList() Parsing conf file: 
/etc/reader.conf.d/libccidtwin
00000116 configfile.l:287:DBGetReaderList() Parsing conf file: 
/etc/reader.conf.d/0comments
00000088 pcscdaemon.c:550:main() pcsc-lite 1.7.0 daemon ready.
00002987 hotplug_libudev.c:258:get_driver() Looking for a driver for VID: 
0x1D6B, PID: 0x0001, path: (null)
00000292 hotplug_libudev.c:258:get_driver() Looking for a driver for VID: 
0x1D6B, PID: 0x0001, path: (null)
00000290 hotplug_libudev.c:258:get_driver() Looking for a driver for VID: 
0x1D6B, PID: 0x0002, path: (null)
00000280 hotplug_libudev.c:258:get_driver() Looking for a driver for VID: 
0x1D6B, PID: 0x0001, path: (null)
00000290 hotplug_libudev.c:258:get_driver() Looking for a driver for VID: 
0x1D6B, PID: 0x0001, path: (null)
00000306 hotplug_libudev.c:258:get_driver() Looking for a driver for VID: 
0x1D6B, PID: 0x0001, path: (null)
00000287 hotplug_libudev.c:258:get_driver() Looking for a driver for VID: 
0x1D6B, PID: 0x0001, path: (null)
00000282 hotplug_libudev.c:258:get_driver() Looking for a driver for VID: 
0x1D6B, PID: 0x0002, path: (null)
27828592 hotplug_libudev.c:258:get_driver() Looking for a driver for VID: 
0x076B, PID: 0x3021, path: (null)
00000041 hotplug_libudev.c:309:HPAddDevice() Adding USB device: Generic CCID 
Reader
Segmentation fault

If I do the same in ltrace, I get

dev.c:309:HPAddDevic"..., "\033[0m"00000410 hotplug_libudev.c:309:HPAddDevice() 
Adding USB device: Generic CCID Reader
) = 102
[pid 5894] udev_device_get_sysattr_value(0x152a180, 0x415886, 0x7f1133535e00, 
-1, 0x7f1133f5d700) = 0x152ad80
[pid 5894] strtol(0x152ad80, 0, 10, 0, 0)                          = 0
[pid 5894] snprintf("\001\200\255\3730", 4282546, "")              = 30
[pid 5894] pthread_mutex_lock(0x61b4e0, 0x4158b2, 0x7fff7acaac9e, 0x4158b2, 0) 
= 0
[pid 5894] udev_device_get_sysattr_value(0x152a180, 0x4158da, 0x7fff7acaac9e, 
0x4158b2, 0x61b4e0) = 0
[pid 5894] udev_device_get_sysattr_value(0x152a8c0, 0x4158b3, 0, 
0x65636166726574, 0x7f1133535ea8) = 0
[pid 5894] __strdup(0x7fff7acaad80, 0xfffffffffeadb33f, 80, 0, 0x152b2d0) = 
0x152b300
[pid 5894] __strdup(0, 0x7fff7acaad94, 0, 0x4449434320636972, 
0x72656461655220<unfinished ...>
[pid 5894] --- SIGSEGV (Segmentation fault) ---
[pid 5894] +++ killed by SIGSEGV +++

So it is most likely some string handling issue regarding sysfs.

I think you are right.

Can you rebuild pcscd in debug mode and run it inside gdb to get a backtrace?

Since only pcscd is involved you can run it directly from the source directory within installing it.

Thanks

--
 Dr. Ludovic Rousseau



--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to