问题标签 [double-free]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - glibc 使用 apache-tomcat6_0.43 和 Cups 检测到双重释放或损坏(fasttop)
我有一个在 sles 11 sp3 中运行的 java web 应用程序,该应用程序将 pdf 文件发送到 cups,有时应用程序崩溃,并停止我的 tomcat 服务,错误是
我读到这个问题是因为 lib openssl,更新我的库和错误继续
有什么建议么
谢谢。
c++ - 删除参考时双重释放或损坏
我有一个带有一些基本构造函数的类。主要代码
导致错误:
这段代码不等同于
那是什么东西,我不明白。?
c++ - *** `./a.out' 中的错误:双重释放或损坏(!prev):0x096fb008 *** 中止(核心转储)
我收到与标题相同的错误。我认为这是因为矩阵 A 而发生的,但不明白为什么以及如何解决它。
请帮帮我。这是完整的代码。我正在使用 g++ 来编译代码。
提前非常感谢。
c - 错误 - C 中的双重释放或损坏(fasttop)
我正在尝试使用头文件编写一个程序来处理分配的列表和文件,但是我遇到了标题中提到的错误。该错误发生在第三次 addNode 运行 (addNode(l, r3);) 时,程序崩溃。我一直在试图找出可能导致它近 2 小时的原因,但一无所获。
主.c:
列表.h:
list.c 中的 addNode
}
注意:a)头文件是教授给的,赋值给代码list.c b)实际代码比较大,据我所知和问题无关,所以选择只贴有问题的函数. c) main.c 只是一个测试程序,旨在测试我的代码是否正常工作。也就是说,它是我写的,而不是教授,所以问题可能出在那个地方。d) 正如我上面所说,崩溃发生在第三次 addNode 运行期间,对于节点 r3。
在此先感谢您的帮助。
c++ - 如何避免复制赋值运算符的双重释放或损坏(fasttop)?
我有以下类,我在其中强制编译器生成所有复制/移动构造函数和赋值运算符。
然后我从main
函数中调用它,就像这样
现在我知道我通过分配两次释放内存y = x
; 所以一旦一个被释放另一个是null
,我是对的吗?我继续并实现了我自己的复制赋值运算符
但是,我想我又在做默认构造函数正在做的事情。我的问题是如何制作一个正确的复制赋值运算符,这样这个问题就不会发生?
c++ - 双重免费或腐败,为什么会出现这种情况?
我几乎完成了我的智能指针(我知道......)所以我将它上传到我大学的网站,该网站对我的代码运行了许多自动化测试。许多测试有两个问题:
- 超出内存或时间限制
- 内存访问问题(即空指针)
问题是我不知道正在执行什么样的测试。我能够阅读我所做的自动化测试的标准输出,这是写在那里的:
所以我猜出于某种奇怪的原因它不会调用我的 my_pointer() 构造函数?这是我的智能指针类:
这是一个可以计算引用的类:
你能看出代码有什么问题吗?提前致谢!
c - 奇怪的双重自由行为
下面我有一个功能trim()
。从整数数组中删除前导零。它返回一个指针,它从malloc()
. trim()
在运行对and的连续调用循环时free()
。我注意到trim()
- 接收到的返回值malloc()
在每次迭代中都是相同的。
我的理解是两次释放同一个指针,如果不是NULL
,将导致双重释放错误。为什么在这种情况下没有遇到双重释放错误?
输出:
c - 将指针设置为 NULL 后双释放
注意:这可能与我之前提出的问题重复。我已经对这个问题发表了评论,以产生一个更简洁和可运行的版本。
正如之前的帖子中所指出的,我已经修补了内存泄漏。现在,我收到一个双重免费错误。我已经评论了我认为发生双重释放错误的地方 - 在power_arr()
函数内。我发布了另一个问题,trim()
使用相同的模式操作该功能,没有收到错误。我试图了解双重释放tmp
错误的确切原因,因为内部指针的管理power_arr()
似乎很合理。
确切的错误信息如下:
代码的目的是将大整数作为整数数组处理。更具体地说,处理 2^1000 范围内的整数。
旁注,函数pad()
和枚举SIDE
。给定数组int n[] = { 1, 2 };
。调用pad()
设置SIDE
为LOW
,即0,anew_length
为5,返回的数组如下;{ 0, 0, 0, 1, 2 }。如果SIDE
设置为HIGH
,则结果将为 { 1, 2, 0, 0, 0 }。
请注意,我会删除这个问题演变而来的原始问题,但我觉得这是我的“ Malloc 返回相同值 - 没有双重免费错误”问题的一个分支。由于该问题的后续调试导致了这个问题。
c - 为什么这个 C 代码会产生双重释放或损坏?
为什么这个用于计算两个向量的内积的代码在编译时会产生双重释放或损坏错误:
代码来自这个参考。
c++ - 当我在 C++ 中执行 buffer1.push_back(buffer2.front()) 时究竟会发生什么?
帮助我理解这一点。这是上下文。
- 我正在用 C++ 编写程序。
- 我有 2 个缓冲区(双端队列)。我们称它们为 buffer1 和 buffer2;
- 我有 2 个线程:一个线程正在用随机值填充 buffer1。另一种是将最旧的buffer1值复制到buffer2;
- 我正在使用互斥锁。
我想将 buffer1 的第一个位置内的值复制到 buffer2 中,为了执行此操作,我编写了以下代码行:
线程 1
线程 2
我的问题是: 执行此操作,我是在复制值还是通过引用传递值? 我解释我的问题。我在运行程序时遇到随机内存问题。我想确定问题的根源是否在这里。
谢谢大家。