]> git.baikalelectronics.ru Git - kernel.git/commit
sysfs: Add sysfs_emit and sysfs_emit_at to format sysfs output
authorJoe Perches <joe@perches.com>
Wed, 16 Sep 2020 20:40:38 +0000 (13:40 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 2 Oct 2020 10:02:30 +0000 (12:02 +0200)
commite84891a0472ed92796cd222f8e721f40b9c02b33
tree5489a527a724c8a17bf96df38744504f0acb74b3
parent7330705267d98790ab12338cfe974251daf97d08
sysfs: Add sysfs_emit and sysfs_emit_at to format sysfs output

Output defects can exist in sysfs content using sprintf and snprintf.

sprintf does not know the PAGE_SIZE maximum of the temporary buffer
used for outputting sysfs content and it's possible to overrun the
PAGE_SIZE buffer length.

Add a generic sysfs_emit function that knows that the size of the
temporary buffer and ensures that no overrun is done.

Add a generic sysfs_emit_at function that can be used in multiple
call situations that also ensures that no overrun is done.

Validate the output buffer argument to be page aligned.
Validate the offset len argument to be within the PAGE_SIZE buf.

Signed-off-by: Joe Perches <joe@perches.com>
Link: https://lore.kernel.org/r/884235202216d464d61ee975f7465332c86f76b2.1600285923.git.joe@perches.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Documentation/filesystems/sysfs.rst
fs/sysfs/file.c
include/linux/sysfs.h