198 */
199 void py_dissect(tvbuff_t * tvb, packet_info * pinfo,
200 proto_tree * tree)
201 {
202 PyObject * py_dissector;
203
204 /* printf("pinfo->current_proto : %s\n", pinfo->current_proto); */
205 /* NOTE => pinfo->current_proto == "HomePlug" */
206
207 g_tree = tree;
208 g_pinfo = pinfo;
209 g_tvb = tvb;
210
211 py_dissector = g_hash_table_lookup(g_py_dissectors, pinfo->current_proto);
when treating unknown struct packet_info * from wspy_register.c:199 as non-NULL
212 assert(py_dissector);
when treating unknown void * from wspy_register.c:211 as non-NULL
taking False path
213
214 PyObject_CallMethod(py_dissector, "pre_dissect", NULL);
when PyObject_CallMethod() succeeds
new ref from call to PyObject_CallMethod allocated at: PyObject_CallMethod(py_dissector, "pre_dissect", NULL);
ob_refcnt is now refs: 1 + N where N >= 0
215 }
returning
ob_refcnt of new ref from call to PyObject_CallMethod is 1 too high
was expecting final ob_refcnt to be N + 0 (for some unknown N)
but final ob_refcnt is N + 1