#13719: Illegal free in graph_generators
----------------------------+-----------------------------------------------
Reporter: nbruin | Owner: rlm
Type: defect | Status: new
Priority: critical | Milestone: sage-5.6
Component: memleak | Resolution:
Keywords: | Work issues:
Report Upstream: N/A | Reviewers:
Authors: | Merged in:
Dependencies: | Stopgaps:
----------------------------+-----------------------------------------------
Comment (by jpflori):
Replying to [comment:1 nbruin]:
> I think the problem is in `sage/graphs/trees.pyx`:78, the `__dealloc__`
method of `TreeIterator`. It does:
> {{{
> def __dealloc__(self):
> if self.l != NULL:
> sage_free(self.l)
> if self.current_level_sequence != NULL:
> sage_free(self.current_level_sequence)
> }}}
> however, self.l and self.current_level_sequence are python attributes,
not cdeffed pointers! So I don't think one can expect that `self.l` hold a
valid value by the time `__dealloc__` gets called. Storing pointers in
python attributes is highly suspect to begin with.
It seems that l and current_level_sequence are properly defined in
trees.pxd as cdefed pointers, so the problem might be elsewhere or just a
little bit more involved.
Maybe l and current_level_sequence can point to the same memory address,
whence a double free.
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/13719#comment:2>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.