Mercurial > illumos > illumos-gate
changeset 10968:7ccd43cefe5e
6898147 Inappropriate nvlist_free in x86gentopo's chip enumerator
author | Srihari Venkatesan <Srihari.Venkatesan@Sun.COM> |
---|---|
date | Thu, 05 Nov 2009 15:01:10 -0800 |
parents | 0f20d1dba80d |
children | ed9b19e85c90 |
files | usr/src/lib/fm/topo/modules/i86pc/chip/chip_amd.c |
diffstat | 1 files changed, 8 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/usr/src/lib/fm/topo/modules/i86pc/chip/chip_amd.c Thu Nov 05 15:47:57 2009 -0700 +++ b/usr/src/lib/fm/topo/modules/i86pc/chip/chip_amd.c Thu Nov 05 15:01:10 2009 -0800 @@ -722,7 +722,7 @@ int model, int *nerrp) { tnode_t *mcnode; - nvlist_t *fmri; + nvlist_t *rfmri, *fmri; nvpair_t *nvp; nvlist_t *mc = NULL; int i, err; @@ -743,14 +743,15 @@ return; if (FM_AWARE_SMBIOS(mod)) { - (void) topo_node_resource(pnode, &fmri, &err); - (void) nvlist_lookup_string(fmri, "serial", &serial); - (void) nvlist_lookup_string(fmri, "part", &part); - (void) nvlist_lookup_string(fmri, "revision", &rev); - nvlist_free(fmri); + (void) topo_node_resource(pnode, &rfmri, &err); + (void) nvlist_lookup_string(rfmri, "serial", &serial); + (void) nvlist_lookup_string(rfmri, "part", &part); + (void) nvlist_lookup_string(rfmri, "revision", &rev); } if (mkrsrc(mod, pnode, name, mcnum, auth, &fmri) != 0) { + if (FM_AWARE_SMBIOS(mod)) + nvlist_free(rfmri); whinge(mod, nerrp, "mc_create: mkrsrc failed\n"); return; } @@ -759,6 +760,7 @@ (void) nvlist_add_string(fmri, "serial", serial); (void) nvlist_add_string(fmri, "part", part); (void) nvlist_add_string(fmri, "revision", rev); + nvlist_free(rfmri); } if ((mcnode = topo_node_bind(mod, pnode, name, mcnum,