[ 1%] Building C object CMakeFiles/xquic-static.dir/src/tls/xqc_tls.c.o
[ 2%] Building C object CMakeFiles/xquic.dir/src/tls/xqc_tls.c.o
In file included from /usr/include/string.h:519,
from /home/ubuntu/Downloads/xquic-1.2.0-stable/src/common/xqc_common.h:8,
from /home/ubuntu/Downloads/xquic-1.2.0-stable/src/tls/xqc_tls_defs.h:9,
from /home/ubuntu/Downloads/xquic-1.2.0-stable/src/tls/xqc_tls.h:11,
from /home/ubuntu/Downloads/xquic-1.2.0-stable/src/tls/xqc_tls.c:5:
In function ‘strncpy’,
inlined from ‘xqc_tls_set_alpn’ at /home/ubuntu/Downloads/xquic-1.2.0-stable/src/tls/xqc_tls.c:171:5:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:95:10: error: ‘__builtin_strncpy’ specified bound depends on the length of the source argument [-Werror=stringop-truncation]
95 | return __builtin___strncpy_chk (__dest, __src, __len,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
96 | __glibc_objsize (__dest));
| ~~~~~~~~~~~~~~~~~~~~~~~~~
/home/ubuntu/Downloads/xquic-1.2.0-stable/src/tls/xqc_tls.c: In function ‘xqc_tls_set_alpn’:
/home/ubuntu/Downloads/xquic-1.2.0-stable/src/tls/xqc_tls.c:151:23: note: length computed here
151 | size_t alpn_len = strlen(alpn);
| ^~~~~~~~~~~~
In file included from /usr/include/string.h:519,
from /home/ubuntu/Downloads/xquic-1.2.0-stable/src/common/xqc_common.h:8,
from /home/ubuntu/Downloads/xquic-1.2.0-stable/src/tls/xqc_tls_defs.h:9,
from /home/ubuntu/Downloads/xquic-1.2.0-stable/src/tls/xqc_tls.h:11,
from /home/ubuntu/Downloads/xquic-1.2.0-stable/src/tls/xqc_tls.c:5:
In function ‘strncpy’,
inlined from ‘xqc_tls_set_alpn’ at /home/ubuntu/Downloads/xquic-1.2.0-stable/src/tls/xqc_tls.c:171:5:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:95:10: error: ‘__builtin_strncpy’ specified bound depends on the length of the source argument [-Werror=stringop-truncation]
95 | return __builtin___strncpy_chk (__dest, __src, __len,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
96 | __glibc_objsize (__dest));
| ~~~~~~~~~~~~~~~~~~~~~~~~~
/home/ubuntu/Downloads/xquic-1.2.0-stable/src/tls/xqc_tls.c: In function ‘xqc_tls_set_alpn’:
/home/ubuntu/Downloads/xquic-1.2.0-stable/src/tls/xqc_tls.c:151:23: note: length computed here
151 | size_t alpn_len = strlen(alpn);
| ^~~~~~~~~~~~
cc1: all warnings being treated as errors
make[2]: *** [CMakeFiles/xquic-static.dir/build.make:557:CMakeFiles/xquic-static.dir/src/tls/xqc_tls.c.o] 错误 1
make[1]: *** [CMakeFiles/Makefile2:105:CMakeFiles/xquic-static.dir/all] 错误 2
make[1]: *** 正在等待未完成的任务....
cc1: all warnings being treated as errors
make[2]: *** [CMakeFiles/xquic.dir/build.make:557:CMakeFiles/xquic.dir/src/tls/xqc_tls.c.o] 错误 1
make[1]: *** [CMakeFiles/Makefile2:78:CMakeFiles/xquic.dir/all] 错误 2
make: *** [Makefile:84:all] 错误 2
What happened?
在src/tls/xqc_tls.c的xqc_tls_set_alpn函数中,先使用strlen获得alpn长度,然后又将这个长度作为strncpy的参数。建议将size_t alpn_len = strlen(alpn)改为size_t alpn_len = strnlen(alpn, 128)。
Steps To Reproduce
使用GCC 11.1.0 x86_64-linux-gun编译器构建项目
Relevant log output