--- lib/ipmi_sdr.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) --- ipmitool-1.8.11.orig/lib/ipmi_sdr.c +++ ipmitool-1.8.11/lib/ipmi_sdr.c @@ -464,8 +464,8 @@ ipmi_sdr_get_sensor_reading_ipmb(struct struct ipmi_rs *rsp; uint8_t save_addr; -// if ((strncmp(intf->name, "ipmb", 4)) != 0) -// return ipmi_sdr_get_sensor_reading(intf, sensor); + if ((strncmp(intf->name, "ipmb", 4)) != 0) + return ipmi_sdr_get_sensor_reading(intf, sensor); save_addr = intf->target_addr; intf->target_addr = target; @@ -1832,8 +1832,7 @@ ipmi_sdr_print_sensor_compact(struct ipm printf("ns | %2d.%1d | ", sensor->entity.id, sensor->entity.instance); - if (rsp && rsp->data_len > 1 && - IS_SCANNING_DISABLED(rsp->data[1])) + if (validread && IS_SCANNING_DISABLED(rsp->data[1])) printf("Disabled"); else printf("No Reading"); @@ -2774,7 +2773,7 @@ ipmi_sdr_get_record(struct ipmi_intf * i switch (rsp->ccode) { case 0xca: /* read too many bytes at once */ - sdr_max_read_len = sdr_rq.length - 1; + sdr_max_read_len = (sdr_max_read_len >> 1) - 1; continue; case 0xc5: /* lost reservation */