Hi Bhupesh, kernel test robot noticed the following build warnings: [auto build test WARNING on next-20250808] [cannot apply to trace/for-next tip/sched/core brauner-vfs/vfs.all linus/master v6.17-rc1 v6.16 v6.16-rc7 v6.17-rc1] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Bhupesh/exec-Remove-obsolete-comments/20250811-144920 base: next-20250808 patch link: https://lore.kernel.org/r/20250811064609.918593-4-bhupesh%40igalia.com patch subject: [PATCH v7 3/4] treewide: Replace 'get_task_comm()' with 'strscpy_pad()' config: arc-randconfig-002-20250812 (https://download.01.org/0day-ci/archive/20250812/202508121145.d07aFegg-lkp@xxxxxxxxx/config) compiler: arc-linux-gcc (GCC) 12.5.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250812/202508121145.d07aFegg-lkp@xxxxxxxxx/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202508121145.d07aFegg-lkp@xxxxxxxxx/ All warnings (new ones prefixed by >>): In file included from include/linux/build_bug.h:5, from include/linux/container_of.h:5, from include/linux/list.h:5, from include/linux/module.h:12, from net/netfilter/nf_tables_api.c:8: net/netfilter/nf_tables_api.c: In function 'nf_tables_fill_gen_info': >> include/linux/string.h:116:50: warning: passing argument 3 of 'nla_put_string' makes pointer from integer without a cast [-Wint-conversion] 116 | #define sized_strscpy_pad(dest, src, count) ({ \ | ~^~~~~~~~~~~~~~~~~~~~~~~~ | | | ssize_t {aka int} 117 | char *__dst = (dest); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | const char *__src = (src); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 119 | const size_t __count = (count); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 120 | ssize_t __wrote; \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | \ | ~ 122 | __wrote = sized_strscpy(__dst, __src, __count); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | if (__wrote >= 0 && __wrote < __count) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | memset(__dst + __wrote + 1, 0, __count - __wrote - 1); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 125 | __wrote; \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 126 | }) | ~~ include/linux/compiler.h:57:52: note: in definition of macro '__trace_if_var' 57 | #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) | ^~~~ net/netfilter/nf_tables_api.c:9659:9: note: in expansion of macro 'if' 9659 | if (nla_put_be32(skb, NFTA_GEN_ID, htonl(nft_net->base_seq)) || | ^~ include/linux/string.h:86:9: note: in expansion of macro 'sized_strscpy_pad' 86 | sized_strscpy_pad(dst, src, sizeof(dst) + __must_be_array(dst) + \ | ^~~~~~~~~~~~~~~~~ include/linux/args.h:25:24: note: in expansion of macro '__strscpy_pad0' 25 | #define __CONCAT(a, b) a ## b | ^ include/linux/args.h:26:27: note: in expansion of macro '__CONCAT' 26 | #define CONCATENATE(a, b) __CONCAT(a, b) | ^~~~~~~~ include/linux/string.h:149:9: note: in expansion of macro 'CONCATENATE' 149 | CONCATENATE(__strscpy_pad, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__) | ^~~~~~~~~~~ net/netfilter/nf_tables_api.c:9661:53: note: in expansion of macro 'strscpy_pad' 9661 | nla_put_string(skb, NFTA_GEN_PROC_NAME, strscpy_pad(buf, current->comm))) | ^~~~~~~~~~~ In file included from include/linux/netfilter/nfnetlink.h:7, from net/netfilter/nf_tables_api.c:17: include/net/netlink.h:1655:46: note: expected 'const char *' but argument is of type 'ssize_t' {aka 'int'} 1655 | const char *str) | ~~~~~~~~~~~~^~~ >> include/linux/string.h:116:50: warning: passing argument 3 of 'nla_put_string' makes pointer from integer without a cast [-Wint-conversion] 116 | #define sized_strscpy_pad(dest, src, count) ({ \ | ~^~~~~~~~~~~~~~~~~~~~~~~~ | | | ssize_t {aka int} 117 | char *__dst = (dest); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | const char *__src = (src); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 119 | const size_t __count = (count); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 120 | ssize_t __wrote; \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | \ | ~ 122 | __wrote = sized_strscpy(__dst, __src, __count); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | if (__wrote >= 0 && __wrote < __count) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | memset(__dst + __wrote + 1, 0, __count - __wrote - 1); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 125 | __wrote; \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 126 | }) | ~~ include/linux/compiler.h:57:61: note: in definition of macro '__trace_if_var' 57 | #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) | ^~~~ net/netfilter/nf_tables_api.c:9659:9: note: in expansion of macro 'if' 9659 | if (nla_put_be32(skb, NFTA_GEN_ID, htonl(nft_net->base_seq)) || | ^~ include/linux/string.h:86:9: note: in expansion of macro 'sized_strscpy_pad' 86 | sized_strscpy_pad(dst, src, sizeof(dst) + __must_be_array(dst) + \ | ^~~~~~~~~~~~~~~~~ include/linux/args.h:25:24: note: in expansion of macro '__strscpy_pad0' 25 | #define __CONCAT(a, b) a ## b | ^ include/linux/args.h:26:27: note: in expansion of macro '__CONCAT' 26 | #define CONCATENATE(a, b) __CONCAT(a, b) | ^~~~~~~~ include/linux/string.h:149:9: note: in expansion of macro 'CONCATENATE' 149 | CONCATENATE(__strscpy_pad, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__) | ^~~~~~~~~~~ net/netfilter/nf_tables_api.c:9661:53: note: in expansion of macro 'strscpy_pad' 9661 | nla_put_string(skb, NFTA_GEN_PROC_NAME, strscpy_pad(buf, current->comm))) | ^~~~~~~~~~~ include/net/netlink.h:1655:46: note: expected 'const char *' but argument is of type 'ssize_t' {aka 'int'} 1655 | const char *str) | ~~~~~~~~~~~~^~~ >> include/linux/string.h:116:50: warning: passing argument 3 of 'nla_put_string' makes pointer from integer without a cast [-Wint-conversion] 116 | #define sized_strscpy_pad(dest, src, count) ({ \ | ~^~~~~~~~~~~~~~~~~~~~~~~~ | | | ssize_t {aka int} 117 | char *__dst = (dest); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | const char *__src = (src); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 119 | const size_t __count = (count); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 120 | ssize_t __wrote; \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | \ | ~ 122 | __wrote = sized_strscpy(__dst, __src, __count); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | if (__wrote >= 0 && __wrote < __count) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | memset(__dst + __wrote + 1, 0, __count - __wrote - 1); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 125 | __wrote; \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 126 | }) | ~~ include/linux/compiler.h:68:10: note: in definition of macro '__trace_if_value' 68 | (cond) ? \ | ^~~~ include/linux/compiler.h:55:28: note: in expansion of macro '__trace_if_var' 55 | #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) | ^~~~~~~~~~~~~~ net/netfilter/nf_tables_api.c:9659:9: note: in expansion of macro 'if' 9659 | if (nla_put_be32(skb, NFTA_GEN_ID, htonl(nft_net->base_seq)) || | ^~ include/linux/string.h:86:9: note: in expansion of macro 'sized_strscpy_pad' 86 | sized_strscpy_pad(dst, src, sizeof(dst) + __must_be_array(dst) + \ | ^~~~~~~~~~~~~~~~~ include/linux/args.h:25:24: note: in expansion of macro '__strscpy_pad0' 25 | #define __CONCAT(a, b) a ## b | ^ include/linux/args.h:26:27: note: in expansion of macro '__CONCAT' 26 | #define CONCATENATE(a, b) __CONCAT(a, b) | ^~~~~~~~ include/linux/string.h:149:9: note: in expansion of macro 'CONCATENATE' 149 | CONCATENATE(__strscpy_pad, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__) | ^~~~~~~~~~~ net/netfilter/nf_tables_api.c:9661:53: note: in expansion of macro 'strscpy_pad' 9661 | nla_put_string(skb, NFTA_GEN_PROC_NAME, strscpy_pad(buf, current->comm))) | ^~~~~~~~~~~ include/net/netlink.h:1655:46: note: expected 'const char *' but argument is of type 'ssize_t' {aka 'int'} 1655 | const char *str) | ~~~~~~~~~~~~^~~ vim +/nla_put_string +116 include/linux/string.h e6584c3964f2ff Kees Cook 2023-09-20 74 e6584c3964f2ff Kees Cook 2023-09-20 75 /* e6584c3964f2ff Kees Cook 2023-09-20 76 * The 2 argument style can only be used when dst is an array with a e6584c3964f2ff Kees Cook 2023-09-20 77 * known size. e6584c3964f2ff Kees Cook 2023-09-20 78 */ e6584c3964f2ff Kees Cook 2023-09-20 79 #define __strscpy0(dst, src, ...) \ 559048d156ff33 Kees Cook 2024-08-05 80 sized_strscpy(dst, src, sizeof(dst) + __must_be_array(dst) + \ 559048d156ff33 Kees Cook 2024-08-05 81 __must_be_cstr(dst) + __must_be_cstr(src)) 559048d156ff33 Kees Cook 2024-08-05 82 #define __strscpy1(dst, src, size) \ 559048d156ff33 Kees Cook 2024-08-05 83 sized_strscpy(dst, src, size + __must_be_cstr(dst) + __must_be_cstr(src)) e6584c3964f2ff Kees Cook 2023-09-20 84 8366d124ec937c Kees Cook 2024-02-02 85 #define __strscpy_pad0(dst, src, ...) \ 559048d156ff33 Kees Cook 2024-08-05 86 sized_strscpy_pad(dst, src, sizeof(dst) + __must_be_array(dst) + \ 559048d156ff33 Kees Cook 2024-08-05 87 __must_be_cstr(dst) + __must_be_cstr(src)) 559048d156ff33 Kees Cook 2024-08-05 88 #define __strscpy_pad1(dst, src, size) \ 559048d156ff33 Kees Cook 2024-08-05 89 sized_strscpy_pad(dst, src, size + __must_be_cstr(dst) + __must_be_cstr(src)) 458a3bf82df4fe Tobin C. Harding 2019-04-05 90 e6584c3964f2ff Kees Cook 2023-09-20 91 /** e6584c3964f2ff Kees Cook 2023-09-20 92 * strscpy - Copy a C-string into a sized buffer e6584c3964f2ff Kees Cook 2023-09-20 93 * @dst: Where to copy the string to e6584c3964f2ff Kees Cook 2023-09-20 94 * @src: Where to copy the string from e6584c3964f2ff Kees Cook 2023-09-20 95 * @...: Size of destination buffer (optional) e6584c3964f2ff Kees Cook 2023-09-20 96 * e6584c3964f2ff Kees Cook 2023-09-20 97 * Copy the source string @src, or as much of it as fits, into the e6584c3964f2ff Kees Cook 2023-09-20 98 * destination @dst buffer. The behavior is undefined if the string e6584c3964f2ff Kees Cook 2023-09-20 99 * buffers overlap. The destination @dst buffer is always NUL terminated, e6584c3964f2ff Kees Cook 2023-09-20 100 * unless it's zero-sized. e6584c3964f2ff Kees Cook 2023-09-20 101 * e6584c3964f2ff Kees Cook 2023-09-20 102 * The size argument @... is only required when @dst is not an array, or e6584c3964f2ff Kees Cook 2023-09-20 103 * when the copy needs to be smaller than sizeof(@dst). e6584c3964f2ff Kees Cook 2023-09-20 104 * e6584c3964f2ff Kees Cook 2023-09-20 105 * Preferred to strncpy() since it always returns a valid string, and e6584c3964f2ff Kees Cook 2023-09-20 106 * doesn't unnecessarily force the tail of the destination buffer to be e6584c3964f2ff Kees Cook 2023-09-20 107 * zero padded. If padding is desired please use strscpy_pad(). e6584c3964f2ff Kees Cook 2023-09-20 108 * e6584c3964f2ff Kees Cook 2023-09-20 109 * Returns the number of characters copied in @dst (not including the e6584c3964f2ff Kees Cook 2023-09-20 110 * trailing %NUL) or -E2BIG if @size is 0 or the copy from @src was e6584c3964f2ff Kees Cook 2023-09-20 111 * truncated. e6584c3964f2ff Kees Cook 2023-09-20 112 */ e6584c3964f2ff Kees Cook 2023-09-20 113 #define strscpy(dst, src, ...) \ e6584c3964f2ff Kees Cook 2023-09-20 114 CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src, __VA_ARGS__) 458a3bf82df4fe Tobin C. Harding 2019-04-05 115 8366d124ec937c Kees Cook 2024-02-02 @116 #define sized_strscpy_pad(dest, src, count) ({ \ 8366d124ec937c Kees Cook 2024-02-02 117 char *__dst = (dest); \ 8366d124ec937c Kees Cook 2024-02-02 118 const char *__src = (src); \ 8366d124ec937c Kees Cook 2024-02-02 119 const size_t __count = (count); \ 8366d124ec937c Kees Cook 2024-02-02 120 ssize_t __wrote; \ 8366d124ec937c Kees Cook 2024-02-02 121 \ 8366d124ec937c Kees Cook 2024-02-02 122 __wrote = sized_strscpy(__dst, __src, __count); \ 8366d124ec937c Kees Cook 2024-02-02 123 if (__wrote >= 0 && __wrote < __count) \ 8366d124ec937c Kees Cook 2024-02-02 124 memset(__dst + __wrote + 1, 0, __count - __wrote - 1); \ 8366d124ec937c Kees Cook 2024-02-02 125 __wrote; \ 8366d124ec937c Kees Cook 2024-02-02 126 }) 8366d124ec937c Kees Cook 2024-02-02 127 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki