Linux学习 15小时前
Linux 历经六年努力、360 多个补丁,终于彻底移除 strncpy API
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_keji1.html

 

Linux 7.2 终于从 Linux kernel 中彻底移除了 strncpy API。strncpy ( ) 函数用于复制最多指定字节数,早已被标记为 deprecated,经过六年的工作和数百个补丁,kernel 内已不再有 strncpy 接口的使用者,因此现在将其彻底移除。

Linux kernel 中的   strncpy 函数由于其反直觉的语义和 NUL 终止方面的行为,长期以来一直是 " 持续不断的 bug 来源 ",同时由于目标地址的冗余补零,还存在性能问题。在过去六年中,经过约 362 个 commits 的工作,才彻底清除了 kernel 代码中对 strncpy 的使用,这些工作终于在 Linux 7.2 中完成。

这次周五的合并清除了 strncpy API 以及每个 CPU 架构下最后的 strncpy 实现。

取代 strncpy,Linux kernel 代码中应该使用 strscpy ( )   用于 NUL 终止的目标地址,strscpy_pad ( )   用于带零填充的 NUL 终止目标地址,strtomem_pad ( )   用于非 NUL 终止的固定宽度字段,memcpy_and_pad ( )   用于带显式填充的边界复制,或者   memcpy ( )   用于已知长度的内存复制。

有网友评论:我们必须分叉 Linux 内核以保留其对 strncpy ( ) 的使用!内存安全是觉醒的!让 Linux 再次变得不安全!

另外网友则回复:xlibre、sysvinit、k&r c、glibc、twm、xdm、bash、bzip2 压缩的 initrd、仅限 GPLv3 源码的 Slackware Linux 是您的最佳选择。

来自:https://www.phoronix.com/news/Linux-7.2-Drops-strncpy

宙世代

宙世代

ZAKER旗下Web3.0元宇宙平台

一起剪

一起剪

ZAKER旗下免费视频剪辑工具

相关文章
评论
没有更多评论了
取消

登录后才可以发布评论哦

打开小程序可以发布评论哦

12 我来说两句…
打开 ZAKER 参与讨论