gpt4 book ai didi

c++ - 我该如何解决这个缓冲区溢出问题?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:41:58 31 4
gpt4 key购买 nike

我最近使用 HP fortify 对我正在处理的项目进行了代码扫描。它报告说我对 ReadFile 有一个严重的问题。我从不传递空缓冲区。有关如何解决潜在缓冲区溢出问题的任何建议。

摘要

serialport.cpp 中的函数 Read() 可能能够在第 225 行的已分配内存边界之外写入,这可能会损坏数据、导致程序崩溃或导致恶意代码的执行。

DWORD serialport::Read(std::vector<char> & buffer)
{
DWORD read = 0;
int val = ReadFile(h, &buffer[0], buffer.size(), &read, NULL);

if (val == 0)
{
LPCSTR ptr = "";
PrintError(ptr);
}

buffer.resize(read);
return read;
}

最佳答案

I never pass an empty buffer

但有一天可能会有其他人。您错误地在了解函数外部所做的事情的情况下评估函数内部的代码。该函数可以传递一个空的std::vector<char> &。 .总有一天,它。处理那个案子。

关于c++ - 我该如何解决这个缓冲区溢出问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48079483/

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