Browse Source

iio: force snprintf for PAGE_SIZE bufs

This is a tiny preventative measure to make sure we can't write beyond
PAGE_SIZE on the buffers being used in sysfs for iio. There is currently
no way for this to happen, but the change makes this code more robust
for the future.

Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Kees Cook 11 years ago
parent
commit
598db58166
1 changed files with 2 additions and 2 deletions
  1. 2 2
      drivers/iio/industrialio-core.c

+ 2 - 2
drivers/iio/industrialio-core.c

@@ -340,7 +340,7 @@ ssize_t iio_enum_read(struct iio_dev *indio_dev,
 	else if (i >= e->num_items)
 	else if (i >= e->num_items)
 		return -EINVAL;
 		return -EINVAL;
 
 
-	return sprintf(buf, "%s\n", e->items[i]);
+	return snprintf(buf, PAGE_SIZE, "%s\n", e->items[i]);
 }
 }
 EXPORT_SYMBOL_GPL(iio_enum_read);
 EXPORT_SYMBOL_GPL(iio_enum_read);
 
 
@@ -820,7 +820,7 @@ static ssize_t iio_show_dev_name(struct device *dev,
 				 char *buf)
 				 char *buf)
 {
 {
 	struct iio_dev *indio_dev = dev_to_iio_dev(dev);
 	struct iio_dev *indio_dev = dev_to_iio_dev(dev);
-	return sprintf(buf, "%s\n", indio_dev->name);
+	return snprintf(buf, PAGE_SIZE, "%s\n", indio_dev->name);
 }
 }
 
 
 static DEVICE_ATTR(name, S_IRUGO, iio_show_dev_name, NULL);
 static DEVICE_ATTR(name, S_IRUGO, iio_show_dev_name, NULL);