workqueue: fix -Wformat-truncation in create_worker
authorLucy Mielke <lucymielke@icloud.com>
Mon, 9 Oct 2023 17:09:46 +0000 (19:09 +0200)
committerTejun Heo <tj@kernel.org>
Thu, 12 Oct 2023 19:53:40 +0000 (09:53 -1000)
Compiling with W=1 emitted the following warning
(Compiler: gcc (x86-64, ver. 13.2.1, .config: result of make allyesconfig,
"Treat warnings as errors" turned off):

kernel/workqueue.c:2188:54: warning: ‘%d’ directive output may be
truncated writing between 1 and 10 bytes into a region of size
between 5 and 14 [-Wformat-truncation=]
kernel/workqueue.c:2188:50: note: directive argument in the range
[0, 2147483647]
kernel/workqueue.c:2188:17: note: ‘snprintf’ output between 4 and 23 bytes
into a destination of size 16

setting "id_buf" to size 23 will silence the warning, since GCC
determines snprintf's output to be max. 23 bytes in line 2188.

Please let me know if there are any mistakes in my patch!

Signed-off-by: Lucy Mielke <lucymielke@icloud.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
kernel/workqueue.c

index 51177ff..a3522b7 100644 (file)
@@ -2166,7 +2166,7 @@ static struct worker *create_worker(struct worker_pool *pool)
 {
        struct worker *worker;
        int id;
-       char id_buf[16];
+       char id_buf[23];
 
        /* ID is needed to determine kthread name */
        id = ida_alloc(&pool->worker_ida, GFP_KERNEL);