panasonic-laptop: use snprintf with PAGE_SIZE in sysfs attributes
authorHarald Welte <laforge@gnumonks.org>
Wed, 14 Jan 2009 06:01:17 +0000 (14:01 +0800)
committerLen Brown <len.brown@intel.com>
Sat, 4 Apr 2009 03:43:02 +0000 (23:43 -0400)
Instead of just sprintf() into the page-sized buffer provided
by the sysfs/device_attribute API, we use snprintf with PAGE_SIZE
as an additional safeguard.

Signed-off-by: Martin Lucina <mato@kotelna.sk>
Signed-off-by: Harald Welte <laforge@gnumonks.org>
Signed-off-by: Len Brown <len.brown@intel.com>
drivers/platform/x86/panasonic-laptop.c

index ecaca41..a5ce4bc 100644 (file)
@@ -367,7 +367,7 @@ static ssize_t show_numbatt(struct device *dev, struct device_attribute *attr,
        if (!acpi_pcc_retrieve_biosdata(pcc, pcc->sinf))
                return -EIO;
 
-       return sprintf(buf, "%u\n", pcc->sinf[SINF_NUM_BATTERIES]);
+       return snprintf(buf, PAGE_SIZE, "%u\n", pcc->sinf[SINF_NUM_BATTERIES]);
 }
 
 static ssize_t show_lcdtype(struct device *dev, struct device_attribute *attr,
@@ -379,7 +379,7 @@ static ssize_t show_lcdtype(struct device *dev, struct device_attribute *attr,
        if (!acpi_pcc_retrieve_biosdata(pcc, pcc->sinf))
                return -EIO;
 
-       return sprintf(buf, "%u\n", pcc->sinf[SINF_LCD_TYPE]);
+       return snprintf(buf, PAGE_SIZE, "%u\n", pcc->sinf[SINF_LCD_TYPE]);
 }
 
 static ssize_t show_mute(struct device *dev, struct device_attribute *attr,
@@ -391,7 +391,7 @@ static ssize_t show_mute(struct device *dev, struct device_attribute *attr,
        if (!acpi_pcc_retrieve_biosdata(pcc, pcc->sinf))
                return -EIO;
 
-       return sprintf(buf, "%u\n", pcc->sinf[SINF_MUTE]);
+       return snprintf(buf, PAGE_SIZE, "%u\n", pcc->sinf[SINF_MUTE]);
 }
 
 static ssize_t show_sticky(struct device *dev, struct device_attribute *attr,
@@ -403,7 +403,7 @@ static ssize_t show_sticky(struct device *dev, struct device_attribute *attr,
        if (!acpi_pcc_retrieve_biosdata(pcc, pcc->sinf))
                return -EIO;
 
-       return sprintf(buf, "%u\n", pcc->sinf[SINF_STICKY_KEY]);
+       return snprintf(buf, PAGE_SIZE, "%u\n", pcc->sinf[SINF_STICKY_KEY]);
 }
 
 static ssize_t set_sticky(struct device *dev, struct device_attribute *attr,