//以下函数vulFunc是对外接口函数,该函数存在什么安全问题
#define BUFLEN 256
int vulFunc(uint8_t *data, uint32_t row, uint32_t col)
{
uint_t buf[BUFLEN] = {0};
if(data == NULL)
{
return -1;
}
if(row * col > sizeof(buf))
{
return -1;
}
for(int i = 0; i < row; i++)
{
(void*)memcpy_s(&buf[i * col], col, data + i * col, col);
}
... // 数据分析
return 0;
}
A. 堆内存溢出 B.空指针溢出 C.释放后使用 D.整数溢出,并可导致栈越界