[PATCH linux dev-4.10] hwmon (occ): Fix integer overflow in multiplication

Eddie James eajames at linux.vnet.ibm.com
Sat Dec 9 09:17:28 AEDT 2017



On 12/08/2017 12:16 AM, Joel Stanley wrote:
> On Thu, Dec 7, 2017 at 5:49 AM, Eddie James <eajames at linux.vnet.ibm.com> wrote:
>> --- a/drivers/hwmon/occ/common.c
>> +++ b/drivers/hwmon/occ/common.c
>> @@ -468,7 +468,7 @@ static ssize_t occ_show_power_1(struct device *dev,
>>                                  struct device_attribute *attr, char *buf)
>>   {
>>          int rc;
>> -       u32 val = 0;
>> +       u64 val = 0;
>>          struct power_sensor_1 *power;
>>          struct occ *occ = dev_get_drvdata(dev);
>>          struct occ_sensors *sensors = &occ->sensors;
>> @@ -491,11 +491,11 @@ static ssize_t occ_show_power_1(struct device *dev,
>>                  val = get_unaligned_be32(&power->accumulator);
>>                  break;
>>          case 3:
>> -               val = get_unaligned_be16(&power->value) * 1000000;
>> +               val = (u64)get_unaligned_be16(&power->value) * 1000000ULL;
> I don't think these casts are required, are they?

I'm not at all sure. I didn't think adding ULL was required here, but 
apparently it is. I don't really trust GCC...

>



More information about the openbmc mailing list