据我所知,strlcpy和strlcat被设计为安全的替代品strncpy和strncat.然而,有些人仍然认为他们不安全,只是造成不同类型的问题.
有人可以举例说明如何使用strlcpy或strlcat(即一个总是 null终止其字符串的函数)会导致安全问题吗?
Ulrich Drepper和James Antill表示这是事实,但从未提供实例或澄清这一点.
在Kees Cook 在 linux.conf.au 2019 发布的 YouTube 视频中,他提到strscpy自己是首选,但通常会做用户想要的事情(更少的NUL填充)。但是,他没有说明这个定义是什么(规范或标题),
从视频中滑出,
strscpy()我找不到man
$ for i in strcpy strlcpy strscpy; do man -w $i; done;
/usr/share/man/man3/strcpy.3.gz
/usr/share/man/man3/strlcpy.3bsd.gz
No manual entry for strscpy
Run Code Online (Sandbox Code Playgroud) 我不明白为什么我们要返回unsigned int的strlcat和strlcpy,为什么我们还需要吗?这不是该功能的目的.
谢谢你的回复