OSDN Git Service

printk: Convert a use of sprintf to snprintf in console_unlock
authorNathan Chancellor <natechancellor@gmail.com>
Thu, 30 Jan 2020 22:16:44 +0000 (15:16 -0700)
committerPetr Mladek <pmladek@suse.com>
Tue, 11 Feb 2020 12:01:00 +0000 (13:01 +0100)
commit5661dd95a2958634485bb1a53f90a6ab621d4b0c
tree84d284668a4b97f8be8a83e36ce2206d7e1d30a7
parenta4fe2b4d87c9f2298ae6a641a7a64bc941d079d0
printk: Convert a use of sprintf to snprintf in console_unlock

When CONFIG_PRINTK is disabled (e.g. when building allnoconfig), clang
warns:

../kernel/printk/printk.c:2416:10: warning: 'sprintf' will always
overflow; destination buffer has size 0, but format string expands to at
least 33 [-Wfortify-source]
len = sprintf(text,
      ^
1 warning generated.

It is not wrong; text has a zero size when CONFIG_PRINTK is disabled
because LOG_LINE_MAX and PREFIX_MAX are both zero. Change to snprintf so
that this case is explicitly handled without any risk of overflow.

Link: https://github.com/ClangBuiltLinux/linux/issues/846
Link: https://github.com/llvm/llvm-project/commit/6d485ff455ea2b37fef9e06e426dae6c1241b231
Link: http://lkml.kernel.org/r/20200130221644.2273-1-natechancellor@gmail.com
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: linux-kernel@vger.kernel.org
Cc: clang-built-linux@googlegroups.com
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
Reviewed-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Signed-off-by: Petr Mladek <pmladek@suse.com>
kernel/printk/printk.c