如果 x 和 y 参数从不受信任的用户那里接收数据,这段代码会不会带来一些安全威胁?
char *p = malloc(x * y);
while (x > 0)
while (y > 0)
*p++ = 0;
更新:
大多数人似乎评论说这是一个无限循环,并且这段代码在覆盖其分配的内存时最终会使程序崩溃。 但是除了那个问题。 malloc 的使用方式是否可能存在一些问题?例如。堆溢出,因为没有检查 x 和 y 的上限?
最佳答案
如果 x 和 y 为正,您将无限地写入内存,直到程序崩溃,这是我所期望的。这不是个好主意。
关于c - 这是使用 malloc 的不安全方式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8401484/