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. */

Attachment: signature.asc
Description: Digital signature

Reply via email to