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/

Attachment: signature.asc
Description: PGP signature

Reply via email to