Changed the documentation to allow sprintf() when the buffer provided by sysfs cannot be overflowed. Explicitly say snprintf() must never be used in a show function to format data to be returned to user space. Change based on a discussion about the patch st: convert DRIVER_ATTR macros to DRIVER_ATTR_RO Suggested-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> Signed-off-by: Shane Seymour <shane.seymour@xxxxxx> --- Changes from v1: - Changed the text after feedback from Sergey Senozhatsky need to be more explicit that sprintf() can only be used when you know that you will never overflow the buffer provided by sysfs. --- a/Documentation/filesystems/sysfs.txt 2015-06-22 14:18:40.278620871 -0500 +++ b/Documentation/filesystems/sysfs.txt 2015-06-24 15:42:32.617955400 -0500 @@ -212,7 +212,10 @@ Other notes: - show() methods should return the number of bytes printed into the buffer. This is the return value of scnprintf(). -- show() should always use scnprintf(). +- show() must not use snprintf() when formatting the value to be + returned to user space. If you can guarantee that an overflow + will never happen you can use sprintf() otherwise you must use + scnprintf(). - store() should return the number of bytes used from the buffer. If the entire buffer has been used, just return the count argument. -- To unsubscribe from this list: send the line "unsubscribe linux-api" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html