问题标签 [buffer-overrun]

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.

0 投票
2 回答
1365 浏览

c# - 垃圾收集期间的缓冲区溢出:心理调试请求

目前正在测试建立在 C++ 库之上的 C# (.Net 4.5) WPF 应用程序(托管,我相信,我没有编写它)。由于各种(实际)原因,它在服务器上运行(安装了 VS2012,是的,很糟糕)。

该程序连接到相机(通过库)并显示它接收到的图像帧。

奇怪的是我遇到了缓冲区溢出(我可以理解的缓冲区溢出)。在垃圾收集期间!

A buffer overrun has occurred in App.exe which has corrupted the program's internal state.

各种其他可能有用的信息花絮:

  • 提高“吞吐量”使其发生得更快(几秒钟而不是几分钟)
  • 在 VS 中运行(调试或发布)完全停止它的发生(或者至少延迟它比我准备等待的时间更长)
  • 我的 C# 中没有unsafe,我正在做的唯一“深奥”的事情是将位图(来自库)转换为BitmapSource(像这样)。
  • 这些库是为 x86 编译的,exe 也是。

调用堆栈,每次都一样:

0 投票
1 回答
951 浏览

ios - 有没有人成功使用 valgrind 来检查 iOS 的内存问题?

参考http://alxsrg.com/?p=180 http://root42.blogspot.ru/2011/02/valgrind-checking-of-ios-programs.htmlhttp://landonf.bikemonkey.org/代码/iphone/iPhone_Simulator_Valgrind.20081224.html

我在某些情况下尝试过,都失败了。

我尝试的是:

  1. 山狮 + xcode 4.6/4.6 + 手动编译的 valgrind + SDK5.1 从旧版本的 xcode 中提取。
  2. vmware 中的 lion(10.7.5) 来宾操作系统(主机是山狮)+ xcode4.3.2/4.5.2 + SDK5.1/SDK5.0
  3. 狮子 (10.7) + xcode4.2.1 + SDK5.0

execl 因堆栈空指令(0x00000000)而失败。

虽然我尝试在命令行中使用 valgrind 并且效果很好。

ps,模拟器中生成valgrind的代码:

0 投票
2 回答
2792 浏览

c# - 读取会溢出缓冲区错误

我不知道我在这里做错了什么。我的代码在第一次通过时按预期工作,但在第二次通过时它不会运行并抛出一个异常,只是说“读取将超出缓冲区%”

我收集我的缓冲区做错了,它不喜欢我覆盖它?

我有基本相同的代码并将其更改为匹配 msdn 示例,但没有乐趣..

在 .Net 2.0 Mono 中工作。

0 投票
0 回答
1390 浏览

c++ - c++ 中发生缓冲区溢出

该程序将从用户那里获取一个数学表达式的字符串(char Array)并对其进行解析,然后将每个部分(数字和运算符分别)保存在一个名为 exp 的数组元素中。我之前在 c# 中调试过这个程序,它工作得很好正确,但从现在开始,当我在大学学习 C++ 时,我必须用这种语言编程,所以当我在 Visual Studio 中调试这个程序时,我得到一个错误,上面写着:

“LineCalculator.exe 中发生缓冲区溢出,已损坏程序的内部状态。按 Break 调试程序或继续终止程序。”

请帮忙,我该怎么办?

0 投票
0 回答
124 浏览

c - 缓冲区溢出在没有设置断点的情况下工作,但没有设置断点

我正在为一个类开发一个基于堆栈的缓冲区溢出。由于应用程序的性质,整个有效负载是通过环境变量传递的。此环境变量在应用程序运行之前设置。
我的问题:我的溢出有时有效,有时无效:

可以看出,它工作正常。但是,如果我之后做完全相同的事情,只添加一个断点并运行,我会收到一个错误:

为什么它在我的第二次运行中不起作用,错误是什么?

0 投票
1 回答
908 浏览

python - PyAudio 和缓冲区溢出

我正在尝试使用 pyaudio 播放流式音频

我正在获取一些数据,对其进行处理,然后将它们放入音频流。

数据速率相当稳定,有一些抖动。

我可以在日志中看到数据速率是恒定的并且处理是实时的。

所以我有 0.150 秒的音频,我在 0.08 秒处理了它。

然后在播放器程序日志中,我看到起初一切正常。实际播放数据的时间几乎等于应有的时间(例如 150 毫秒)。然后在某个时候这个时间减少,我看到这个缓冲区溢出错误。就像数据不能按时到达一样。但正如我在日志中看到的那样,数据的处理仍然是实时的。所以我不知道为什么会这样。

这是我的多处理音频播放器代码。

0 投票
1 回答
261 浏览

c - 缓冲区溢出和集中错误处理

我正在阅读Code Complete 2,我在错误处理中遇到了这个语句:

调用错误处理例程/对象。另一种方法是将错误处理集中在全局错误处理例程或错误处理对象中。这种方法的优点是可以集中处理错误的责任,这可以使调试更容易。折衷方案是整个程序将了解此核心功能并将其耦合。如果您想在另一个系统中重用系统中的任何代码,则必须将错误处理机制与您重用的代码一起拖动。

后来它说:

这种方法具有重要的安全含义。如果您的代码遇到缓冲区溢出,则攻击者可能已经破坏了处理程序例程或对象的地址。因此,一旦在应用程序运行时发生缓冲区溢出,使用这种方法就不再安全。

但我无法真正理解上面的陈述。缓冲区溢出如何导致地址受损?

0 投票
5 回答
9448 浏览

c++ - C++ 缓冲区溢出

我正在学习 C++,虽然我对 C# 有合理的理解,但我以前从未遇到过这个问题。使用一个简单的程序,将棋子放在一个虚构的棋盘(一个枚举数组)上,然后分配在开始时有棋子的方格,然后要求您提供坐标,程序会返回该方格上的内容。它显示正确的部分,但在非调试模式下总是会崩溃,并在 Visual Studio 调试中显示缓冲区溢出。它很短,所以我将显示所有代码。

0 投票
1 回答
366 浏览

security - 切片操作导致缓冲区溢出和泄露用户密码?

我有一个服务器,它具有返回用户注册日期的功能。任何用户都可以看到任何非隐藏用户(在这个例子中只有 user2 是隐藏的)。服务器dateRequest从客户端获取 a 并使用idfrom 在用户文件中查找相应用户的日期:

如您所见,它可以正常接收用户的日期,但如果请求的用户名上有额外的字节,则会返回部分用户密码。不仅如此,如果你继续添加更多字节,它会从 user2 返回数据,这应该是隐藏的。为什么?

执行main第三行代码时,userpublicSection​​入的getData是“admin�2014-01-0140�adminpassword”和“admin�2014-01-0140”。但随后它返回“dminpasswo”。切片publicSection(“admin�2014-01-0140”)如何返回“dminpasswo”?这看起来像是一个缓冲区溢出问题,但这不应该发生,因为 Go 是内存安全的。publicSection我什至尝试通过print 读取缓冲区publicSection[len(publicSection)],但它如预期的那样恐慌。

我也尝试用 替换所有的[]bytestring并且由于某种原因解决了这个问题。

0 投票
1 回答
166 浏览

c++ - Simple assembly code generates buffer overrun

I am trying some assembly code to learn how it works but in my first example i faced with the buffer overrun exception. I am using VS2013 express edition and i am using c++ code to make the assembly code work by using extern "C" functionality. I tried to change some VS options but it did not work. What could be reason to give a buffer overrun exception while it is that much simple statement. Normally i build and executed without the mov statement.

Edit : Just add a ret statement for the macro and the problem solved.

This is assmbly part:

and here it is c++ part: