在 6 年 362 个补丁之后,Linux 7.2 内核终于完全移除了 strncpy() 函数。strncpy() 是一个 C 语言字符串复制函数,内核文档将其标记为“极度危险(actively dangerous)”。strncpy()是一类内存错误的主要来源:包含敏感数据的内核缓冲区可能会在未终止字符串边界外泄漏字节,导致内存信息泄露。strncpy()被 5 个不同函数取代:strscpy() 用于 NUL 结尾的目的地址,strscpy_pad() 用于 NUL 结尾零填充的目标地址, strtomem_pad() 用于非 NUL 结尾固定宽度字段,memcpy_and_pad() 用于显式填充的有边界复制,memcpy()用于已知长度的内存复制。

Full article body is being fetched in the background. Refresh in a moment to see the complete paragraphs. For now this page shows a summary and AI analysis.