--- ipmitool-1.8.11.orig/lib/ipmi_sdr.c +++ ipmitool-1.8.11/lib/ipmi_sdr.c @@ -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 */