我有这个代码并用 Flawinder 运行它,我在 read() 函数上得到这个输出:
如果在包含递归循环的循环中使用,请检查缓冲区边界
任何人都可以看到问题吗?
#include <stdlib.h>
void func(int fd)
{
char *buf;
size_t len;
read(fd, &len, sizeof(len));
if (len > 1024)
return;
buf = malloc(len+1);
read(fd, buf, len);
buf[len] = '\0';
}
Run Code Online (Sandbox Code Playgroud)