Print this page
NEX-2985 libtopo leaks
Reviewed by: Marcel Telka <marcel.telka@nexenta.com>
Reviewed by: Josef Sipek <josef.sipek@nexenta.com>

*** 219,229 **** char * pci_slot_label_lookup(topo_mod_t *mod, tnode_t *node, did_t *dp, did_t *pdp) { tnode_t *anode, *apnode; did_t *adp, *apdp; ! char *plat, *pp, *l, *ancestor_l = NULL, *new_l = NULL; int err, b, d, f, done = 0; size_t len; did_BDF(dp, &b, &d, &f); --- 219,229 ---- char * pci_slot_label_lookup(topo_mod_t *mod, tnode_t *node, did_t *dp, did_t *pdp) { tnode_t *anode, *apnode; did_t *adp, *apdp; ! char *plat, *pp, *l = NULL, *ancestor_l = NULL, *new_l = NULL; int err, b, d, f, done = 0; size_t len; did_BDF(dp, &b, &d, &f);
*** 395,404 **** --- 395,407 ---- pci_label_missing_lookup(mod, pp, dp); } } topo_mod_strfree(mod, plat); } + if (ancestor_l != NULL) { + topo_mod_strfree(mod, ancestor_l); + } /* * If we calculated a slot label, then save it in the * node's data structure so we can free it later. */