From 6e87e423eb084d86010cbcc2faccf5c198ca217e Mon Sep 17 00:00:00 2001 From: Zdenek Styblik Date: Wed, 23 Jan 2013 11:24:05 +0000 Subject: [PATCH] ID: 3601265 - # ipmitool sensor get; leaks memory ID: 3601106 - # ipmitool sensor get NACname; output incorrect/inconsistent After a lengthy discussion with Jim, I'm removing free() of sdr_record_list in ipmi_sensor_get() as this is freed in 'lib/ipmi_main.c' on/prior to ipmitool's exit. --- ipmitool/lib/ipmi_sensor.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/ipmitool/lib/ipmi_sensor.c b/ipmitool/lib/ipmi_sensor.c index 9eb236c..b7be1f1 100644 --- a/ipmitool/lib/ipmi_sensor.c +++ b/ipmitool/lib/ipmi_sensor.c @@ -847,6 +847,7 @@ ipmi_sensor_get(struct ipmi_intf *intf, int argc, char **argv) { int i, v; int rc = 0; + struct sdr_record_list *sdr; if (argc < 1) { lprintf(LOG_ERR, "Not enough parameters given."); @@ -857,10 +858,8 @@ ipmi_sensor_get(struct ipmi_intf *intf, int argc, char **argv) return 0; } printf("Locating sensor record...\n"); - /* lookup by sensor name */ for (i = 0; i < argc; i++) { - struct sdr_record_list *sdr; sdr = ipmi_sdr_find_sdr_byid(intf, argv[i]); if (sdr == NULL) { lprintf(LOG_ERR, "Sensor data record \"%s\" not found!", @@ -875,7 +874,7 @@ ipmi_sensor_get(struct ipmi_intf *intf, int argc, char **argv) rc = (-1); } verbose = v; - free(sdr); + sdr = NULL; } return rc; }