C语言 是否有任何strcpy_s和/或TR24731-1的免费实现



我有一个混合了C和C++的旧项目。它广泛使用C弦和strcpystrcatstrncpystrncat等。 我发现了许多缓冲区溢出,我想使用更安全的功能,例如strcpy_s。MSVC包括这些功能,但我需要一些可以在各种平台上工作的东西 - 至少Linux,osx和Windows。

我确实知道strlcpy,但正如很多人注意到的那样(示例),这真的不是一个改进。


那么:是否有任何strcpy_sstrcat_s等或整个TR24731-1的自由实现?

我需要一些public domainBSD的东西,但如果您知道其他许可证下的实现,请继续列出它们 - 我相信其他人会受益。

尝试使用Safe C库。它在 MIT 许可证下,根据此列表实现了您正在寻找的功能:

Safe C 库根据 ISO/IEC TR24731提供绑定检查内存和字符串功能。 这些功能是现有标准 C 库的替代功能,可促进更安全、更安全的编程

您可以使用memcpymemset等,它们比字符串函数可移植且更安全。

为什么不使用strncpystrncat?与strlcpystrlcat相反,它们是标准的C函数。这些功能并不完美,但您可以安全地使用它们。

另请注意,边界检查_s功能在当前标准中是可选的。

最新更新