18得票5回答
为什么在C#中允许使用“long”作为数组长度?

我想尝试分配一个大小为 4 亿字节的数组,这是我的 C# 代码:long size = 4 * 1000; size *= 1000; size *= 1000; byte[] array = new byte[size]; 这段代码在包含new的行中出现System.OverflowExce...

17得票3回答
Go语言是否容易受到缓冲区溢出攻击?

我知道像C#这样的语言只有在使用marshal或unsafe代码时才会容易受到缓冲区溢出攻击。但是Go语言是否存在缓冲区溢出的漏洞呢?

17得票1回答
当TCP内部缓存填满时会发生什么?

假设我们有以下TCP套接字设置,其中客户端向服务器发送任意数据。将以下内容视为伪代码。 def client(): while True: data = source.get_data() client_socket.s...

16得票3回答
“printf("%s", argv[1]);”这行代码的内存漏洞应该描述为堆栈溢出吗?

今天,我在Elance.com上参加了一次短暂的"C++技能测试"。其中一个问题如下: 什么是以下代码行的安全漏洞: printf("%s", argv[1]); 选项1:格式化字符串 选项2:堆栈溢出 堆栈溢出的标准定义: 在软件中,当堆栈指针超过堆栈边界时,就会发生堆栈溢出。调用...

14得票4回答
这个缓冲区为什么会被填满?

在此之前,我为这个问题的无用标题道歉,但似乎没有更合适的。 这里的想法是复制 argv 到另一个变量中,实质上是创建一个副本。因此,函数的基本思路是使用 malloc() 来请求一些空间进行复制,然后遍历 argv 并复制每个元素。 这是我正在使用的代码,目前的开发环境是 Visual S...

14得票1回答
Valgrind无法检测到缓冲区溢出。

#include <stdio.h> main() { char buf[8]; sprintf(buf,"AAAA%3s","XXssssssssXXXsssssXXX"); printf("%s\n",buf); } 我期望valgrind能检...

13得票2回答
动态分配内存时出现“分段错误”

以下是发生分段错误的代码片段(没有调用perror): job = malloc(sizeof(task_t)); if(job == NULL) perror("malloc"); 更准确地说,gdb表示segfault发生在__int_malloc调用内部,该调用是由mall...

13得票6回答
如何在不担心缓冲区溢出的情况下使用strncat?

我有一个缓冲区,我正在进行很多 strncat 操作。我想确保不会溢出缓冲区大小。char buff[64]; strcpy(buff, "String 1"); strncat(buff, "String 2", sizeof(buff)); strncat(buff, "String...

13得票3回答
导致PHP崩溃

PHP如何引起内存泄漏、缓冲区溢出、堆栈溢出以及类似的错误?PHP是否会引起这样的错误?

13得票4回答
如何防止memcpy缓冲区溢出?

在一个程序中,有一些固定大小的二进制缓冲区用于存储数据,并使用 memcpy 将缓冲区从一个复制到另一个。由于源缓冲区可能比目标缓冲区大,因此如何检测是否存在缓冲区溢出?