gpt4 book ai didi

c - 如何防止未终止的字符串

转载 作者:太空狗 更新时间:2023-10-29 17:22:11 25 4
gpt4 key购买 nike

在 C 程序中,我有一个将消息写入日志文件的函数

LogResult writeLog(const char* format, ...)

该函数将其参数作为“格式”字符串和“va_list”传递给“vfprintf()”。我突然想到,如果有人传递一个未终止的字符串,我无法控制会发生什么,例如

const char unterminatedString[5] = {'h', 'e', 'l', 'l', 'o'};
writeLog("Log message: %s", unterminatedString);

有什么办法可以防止这种情况发生吗?

最佳答案

我假设您的日志函数有自己的内部缓冲区,并且您知道它的大小。

然后您可以使用指定缓冲区大小的 vsprintf() 函数。参见 Possible buffer overflow vulnerability .

关于c - 如何防止未终止的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21804203/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com