mirror of
https://github.com/torvalds/linux.git
synced 2024-11-17 01:22:07 +00:00
hwmon: (acpi_power_meter) Fix unintentional integer overflow
Expression with two integer variables is calculated as integer before it is converted to u64. This may result in an integer overflow. Fix by declaring trip point variables as s64 instead of int. This patch addresses Coverity #200596: Unintentional integer overflow. Signed-off-by: Guenter Roeck <linux@roeck-us.net> Acked-by: Jean Delvare <khali@linux-fr.org>
This commit is contained in:
parent
27c4db3996
commit
75311bea56
@ -101,7 +101,7 @@ struct acpi_power_meter_resource {
|
|||||||
unsigned long sensors_last_updated;
|
unsigned long sensors_last_updated;
|
||||||
struct sensor_device_attribute sensors[NUM_SENSORS];
|
struct sensor_device_attribute sensors[NUM_SENSORS];
|
||||||
int num_sensors;
|
int num_sensors;
|
||||||
int trip[2];
|
s64 trip[2];
|
||||||
int num_domain_devices;
|
int num_domain_devices;
|
||||||
struct acpi_device **domain_devices;
|
struct acpi_device **domain_devices;
|
||||||
struct kobject *holders_dir;
|
struct kobject *holders_dir;
|
||||||
@ -308,8 +308,6 @@ static ssize_t set_trip(struct device *dev, struct device_attribute *devattr,
|
|||||||
return res;
|
return res;
|
||||||
|
|
||||||
temp = DIV_ROUND_CLOSEST(temp, 1000);
|
temp = DIV_ROUND_CLOSEST(temp, 1000);
|
||||||
if (temp > INT_MAX)
|
|
||||||
return -EINVAL;
|
|
||||||
|
|
||||||
mutex_lock(&resource->lock);
|
mutex_lock(&resource->lock);
|
||||||
resource->trip[attr->index - 7] = temp;
|
resource->trip[attr->index - 7] = temp;
|
||||||
|
Loading…
Reference in New Issue
Block a user