tags 589956 + patch thanks
~$ gdb --quiet --args python -c "import pcapy; help(pcapy.open_offline('/tmp/dump').next()[0])" Reading symbols from /usr/bin/python...Reading symbols from /usr/lib/debug/usr/bin/python2.6...done. (no debugging symbols found)...done. (gdb) run Starting program: /usr/bin/python -c import\ pcapy\;\ help\(pcapy.open_offline\(\'/tmp/pcap\'\).next\(\)\[0\]\) [Thread debugging using libthread_db enabled]Program received signal SIGSEGV, Segmentation fault. PyObject_GetAttr (v=<unknown at remote 0x7ffff6856be0>, name='__name__') at ../Objects/object.c:1195 1195 ../Objects/object.c: No such file or directory. in ../Objects/object.c (gdb) info args v = <unknown at remote 0x7ffff6856be0> name = '__name__' (gdb) print (Py_ssize_t)(PyObject*)v->ob_refcnt $1 = 2 (gdb) print (PyObject*)v->ob_type $2 = 0x0 (gdb)
The attached patch should fix this bug. -- Jakub Wilk
--- pcapy-0.10.6.orig/pcapy.cc +++ pcapy-0.10.6/pcapy.cc @@ -14,6 +14,8 @@ #include "pcapy.h" #include "pcapobj.h" #include "bpfobj.h" +#include "pcapdumper.h" +#include "pcap_pkthdr.h" PyObject *PcapError; @@ -191,6 +193,9 @@ PyObject *m, *d; Pcaptype.ob_type = &PyType_Type; + Pkthdr_type.ob_type = &PyType_Type; + Pdumpertype.ob_type = &PyType_Type; + m = Py_InitModule3("pcapy", pcap_methods, pcap_doc); /* Direct from pcap's net/bpf.h. */
signature.asc
Description: Digital signature