AdamLaurie / RFIDIOt

python RFID / NFC library & tools
http://www.rfidiot.org/
1.05k stars 222 forks source link

crash with libnfc 1.7.0 #13

Open nmav opened 10 years ago

nmav commented 10 years ago

Hello, I'm trying to create a package of rfidiot in Fedora 20 which ships libnfc 1.7.0. I'm testing with omnikey CardMan 5321 and when I run: /usr/bin/cardselect.py -N I get a segmentation fault.

A valgrind backtrace (don't know how helpful it is), is as follows: ==11960== Invalid read of size 1 ==11960== at 0x4A092F2: strlen (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==11960== by 0x3E0309821F: PyString_FromString (stringobject.c:121) ==11960== by 0xCFC8E58: _ctypes_callproc (callproc.c:927) ==11960== by 0xCFC2A84: PyCFuncPtr_call (_ctypes.c:3929) ==11960== by 0x3E0304A0C2: PyObject_Call (abstract.c:2529) ==11960== by 0x3E030DE38B: PyEval_EvalFrameEx (ceval.c:4316) ==11960== by 0x3E030E098F: PyEval_EvalFrameEx (ceval.c:4184) ==11960== by 0x3E030E21EC: PyEval_EvalCodeEx (ceval.c:3330) ==11960== by 0x3E0306F0F7: function_call (funcobject.c:526) ==11960== by 0x3E0304A0C2: PyObject_Call (abstract.c:2529) ==11960== by 0x3E030590C4: instancemethod_call (classobject.c:2602) ==11960== by 0x3E0304A0C2: PyObject_Call (abstract.c:2529) ==11960== Address 0x20 is not stack'd, malloc'd or (recently) free'd ==11960== ==11960== ==11960== Process terminating with default action of signal 11 (SIGSEGV) ==11960== Access not within mapped region at address 0x20 ==11960== at 0x4A092F2: strlen (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==11960== by 0x3E0309821F: PyString_FromString (stringobject.c:121) ==11960== by 0xCFC8E58: _ctypes_callproc (callproc.c:927) ==11960== by 0xCFC2A84: PyCFuncPtr_call (_ctypes.c:3929) ==11960== by 0x3E0304A0C2: PyObject_Call (abstract.c:2529) ==11960== by 0x3E030DE38B: PyEval_EvalFrameEx (ceval.c:4316) ==11960== by 0x3E030E098F: PyEval_EvalFrameEx (ceval.c:4184) ==11960== by 0x3E030E21EC: PyEval_EvalCodeEx (ceval.c:3330) ==11960== by 0x3E0306F0F7: function_call (funcobject.c:526) ==11960== by 0x3E0304A0C2: PyObject_Call (abstract.c:2529) ==11960== by 0x3E030590C4: instancemethod_call (classobject.c:2602) ==11960== by 0x3E0304A0C2: PyObject_Call (abstract.c:2529) ==11960== If you believe this happened as a result of a stack ==11960== overflow in your program's main thread (unlikely but ==11960== possible), you can try to increase the size of the ==11960== main thread stack using the --main-stacksize= flag. ==11960== The main thread stack size used in this run was 8388608.

The equivalent for PCSC works pretty ok: $ cardselect.py -L PCSC devices: No: 0 OMNIKEY CardMan 5321 (OKCM0072903120829265736952848153) 00 00

Any ideas?

doegox commented 10 years ago

Hello

I'm trying to create a package of rfidiot in Fedora 20 which ships libnfc 1.7.0. I'm testing with omnikey CardMan 5321 and when I run: /usr/bin/cardselect.py -N I get a segmentation fault.

Not nice error handling I admit but omnikey is not a reader supported by libnfc