acpi-power-meter: Don't leak ACPI error codes to userspace
authorDarrick J. Wong <djwong@us.ibm.com>
Thu, 22 Oct 2009 01:01:37 +0000 (18:01 -0700)
committerLen Brown <len.brown@intel.com>
Thu, 5 Nov 2009 17:25:39 +0000 (12:25 -0500)
If the ACPI methods return an error code, we must return -EINVAL to userspace
to flag the error.  Right now we pass the (positive) number right through,
which causes echo to keep writing bogus values.

Signed-off-by: Darrick J. Wong <djwong@us.ibm.com>
Acked-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Len Brown <len.brown@intel.com>
drivers/acpi/power_meter.c

index e6bfd77986b8b1061d4d5d5b0a1635e885388692..2ef7030a0c28b7d428de422d6cda082a36ec8723 100644 (file)
@@ -294,7 +294,11 @@ static int set_acpi_trip(struct acpi_power_meter_resource *resource)
                return -EINVAL;
        }
 
-       return data;
+       /* _PTP returns 0 on success, nonzero otherwise */
+       if (data)
+               return -EINVAL;
+
+       return 0;
 }
 
 static ssize_t set_trip(struct device *dev, struct device_attribute *devattr,