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
