Follow-up Comment #31, sr #111312 (group freeipmi): Well, AFAICT the only offenders were in the sensor decode file. Wanna give this patch a shot? (First one is on top of the prior debug patches, the second one is a fresh start so you can see all the sensors without all the output gunk).
If it looks good, I'll commit and do a new release soon (maybe not today b/c it's a Friday, but sometime next week). diff --git a/libfreeipmi/util/ipmi-sensor-util.c b/libfreeipmi/util/ipmi-sensor-util.c index c4975c07d..f98a4f834 100644 --- a/libfreeipmi/util/ipmi-sensor-util.c +++ b/libfreeipmi/util/ipmi-sensor-util.c @@ -294,12 +294,12 @@ ipmi_sensor_decode_value (int8_t r_exponent, fprintf (stderr, "ipmi-sensor-decode: 1s complement before : %X\n", raw_data); if (raw_data & 0x80) raw_data++; - dval = (double)((char) raw_data); + dval = (double)((int8_t) raw_data); fprintf (stderr, "ipmi-sensor-decode: 1s complement after : %f\n", dval); } else { /* analog_data_format == IPMI_SDR_ANALOG_DATA_FORMAT_2S_COMPLEMENT */ fprintf (stderr, "ipmi-sensor-decode: 2s complement before : %X\n", raw_data); - dval = (double)((char) raw_data); + dval = (double)((int8_t) raw_data); fprintf (stderr, "ipmi-sensor-decode: 2s complement after : %f\n", dval); } @@ -445,12 +445,12 @@ ipmi_sensor_decode_raw_value (int8_t r_exponent, rval = (uint8_t) dval; else if (analog_data_format == IPMI_SDR_ANALOG_DATA_FORMAT_1S_COMPLEMENT) { - rval = (char)dval; + rval = (int8_t)dval; if (rval & 0x80) rval--; } else /* analog_data_format == IPMI_SDR_ANALOG_DATA_FORMAT_2S_COMPLEMENT */ - rval = (char)dval; + rval = (int8_t)dval; *raw_data = rval; return (0); diff --git a/libfreeipmi/util/ipmi-sensor-util.c b/libfreeipmi/util/ipmi-sensor-util.c index 5d50239d4..487f3943f 100644 --- a/libfreeipmi/util/ipmi-sensor-util.c +++ b/libfreeipmi/util/ipmi-sensor-util.c @@ -291,10 +291,10 @@ ipmi_sensor_decode_value (int8_t r_exponent, { if (raw_data & 0x80) raw_data++; - dval = (double)((char) raw_data); + dval = (double)((int8_t) raw_data); } else /* analog_data_format == IPMI_SDR_ANALOG_DATA_FORMAT_2S_COMPLEMENT */ - dval = (double)((char) raw_data); + dval = (double)((int8_t) raw_data); dval *= (double) m; dval += (b * pow (10, b_exponent)); @@ -433,12 +433,12 @@ ipmi_sensor_decode_raw_value (int8_t r_exponent, rval = (uint8_t) dval; else if (analog_data_format == IPMI_SDR_ANALOG_DATA_FORMAT_1S_COMPLEMENT) { - rval = (char)dval; + rval = (int8_t)dval; if (rval & 0x80) rval--; } else /* analog_data_format == IPMI_SDR_ANALOG_DATA_FORMAT_2S_COMPLEMENT */ - rval = (char)dval; + rval = (int8_t)dval; *raw_data = rval; return (0); _______________________________________________________ Reply to this item at: <https://savannah.gnu.org/support/?111312> _______________________________________________ Message sent via Savannah https://savannah.gnu.org/
signature.asc
Description: PGP signature