
Some parts of this message have been removed.
Learn more about Nabble's
security policy.
Hi
In gdome Xpath there is a memory leak problem when the node returned by
the gdome_xpath_xpresult_singleNodeValue() is a Namespace
Declaration node.
Reason- gdome_xpath_xpresult_singleNodeValue()calls the
gdome_xml_n_mkref() to obtain an reference to the node to be
returned. In side the
gdome_xml_n_mkref() for a namespace declaration type node
gdome_xml_xpns_mkref()is called
that creates node which is of
type Gdome_xml_XPathNamespace. In side the gdome_xml_xpns_mkref()
a node of type xmlNode is created
with the namespace as passed to the gdome_xml_xpns_mkref(). This node address
is
stored in the "n" field
of the Gdome_xml_XPathNamespace structure. As there is not separate API to
unref the
Gdome_xml_XPathNamespace object
gdome_n_unref() is called that actually calls the gdome_xml_n_unref(). In that
function the structure of type
Gdome_xml_XPathNamespace is type casted to Gdome_xml_Node. After the reference
count
is decremented it is checked for 0
along with the listener list field (ll) for NULL. As the
Gdome_xml_XPathNamespace
don't have any listener list
field(ll) the ll field of the type casted object has some garbage value that
causes the condition
to be false and the xmlNode object
is not freed along with the Gdome_xml_XPathNamespace object.
_______________________________________________
gdome mailing list
gdome@...
http://mail.gnome.org/mailman/listinfo/gdome