问题标签 [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 投票
4 回答
7618 浏览

c - 被 gdb print ptr vs print "%s" 弄糊涂了

为什么 ptr 正确打印字符串但 cwd 不正确;这也会影响程序,如果我尝试使用 cwd,它会崩溃......

[编辑:原来崩溃是由这个 var 上的愚蠢缓冲区溢出引起的……grr……不是 gdb,但打印问题仍然有效]

0 投票
6 回答
1542 浏览

c - 如何克服 snprintf 在不同的类 UNIX 操作系统中的不一致行为?

根据手册页,snprintf 返回从 glibc 2.2 版开始写入的字节数。但在较低版本的 libc2.2 和 HP-UX 上,它返回一个正整数,这可能导致缓冲区溢出。

如何克服这一点并编写可移植的代码?

编辑:为了更清楚

此代码在 lib 2.3 中完美运行

它在 Linux 上返回字符串 (10) 的长度。但相同的代码返回的正数大于 HP-UX 机器上打印的字符数。希望这个解释很好。

0 投票
3 回答
8110 浏览

c# - 在完全托管的 asp.net c# web 应用程序中是否可能出现缓冲区溢出/溢出

完全托管的 asp.net 门户网站中是否存在缓冲区溢出/溢出漏洞。如果是,如何对其进行测试。

0 投票
11 回答
7805 浏览

c++ - 哪些 C/C++ 函数最常被错误使用并可能导致缓冲区溢出?

我被要求维护一个充满内存泄漏的大型 C++ 代码库。在四处寻找时,我发现我们有很多导致泄漏的缓冲区溢出(它是如何变得如此糟糕,我不想知道)。

我决定先删除缓冲区溢出,从危险函数开始。哪些 C/C++ 函数最常被错误使用并可能导致缓冲区溢出?

对于用于帮助查找缓冲区溢出的编译器和/或工具,我创建了另一个处理此问题的问题

0 投票
14 回答
22337 浏览

c++ - 哪些 C/C++ 工具可以检查缓冲区溢出?

我被要求维护一个充满内存泄漏的大型 C++ 代码库。在四处寻找时,我发现我们有很多导致泄漏的缓冲区溢出(它是如何变得如此糟糕,我不想知道)。

我决定先删除缓冲区溢出。为了让我更容易寻找错误,可以使用哪些工具来检查缓冲区溢出?

0 投票
3 回答
1697 浏览

destructor - 为什么这行代码会出现缓冲区溢出错误?

我只有 1 行代码,这是:

在一个函数里面OnBnClickedButtonGo()。此功能在发布模式下失败,但在调试模式下工作正常。

(我在 Windows XP 上使用 Visual Studio 8。)

错误信息是:

我怀疑它是它的析构函数,它是不可见的和隐含的......但我真的不知道。

PS:我静态链接到 PCRE lib 7.8 版。PS2:不是很相关,但可能会帮助一些无法链接到 PCRE 库的人(我花了几个小时才整理出来):包括#define PCRE_STATIC.

0 投票
10 回答
79934 浏览

java - Java有缓冲区溢出吗?

Java有缓冲区溢出吗?如果是,你能给我一些场景吗?

0 投票
9 回答
1678 浏览

c++ - 您如何在托管代码环境之外安全地编程?

如果您是使用 C 或 C++ 编程的人,没有内存管理、类型检查或缓冲区溢出保护的托管语言优势,使用指针算法,您如何确保您的程序是安全的?您是否使用了大量的单元测试,或者您只是一个谨慎的编码人员?你有其他方法吗?

0 投票
5 回答
875 浏览

c - 如果有人抱怨gets(),为什么不对scanf("%s",...) 做同样的事情呢?

来自man gets

永远不要使用gets()。因为在事先不知道数据的情况下不可能知道gets()会读取多少个字符,并且因为gets()会继续存储超过缓冲区末尾的字符,所以使用起来非常危险。它已被用来破坏计算机安全。请改用 fgets()。

几乎在我看到scanf的所有地方都以应该有相同问题的方式使用(缓冲区溢出/缓冲区溢出scanf("%s",string):. 这种情况下存在这个问题吗?为什么手册页中没有关于它的引用scanf?为什么 gcc 在编译时不发出警告-Wall

ps:我知道有一种方法可以在格式字符串中指定字符串的最大长度scanf

编辑:我不是要确定前面的代码是否正确。我的问题是:如果scanf("%s",string)总是错误的,为什么没有警告并且手册页中没有任何关于它的内容?

0 投票
2 回答
3423 浏览

c++ - 避免“缓冲区溢出”C6386 警告

在我的代码中,我使用了一个包含xyz10 个对象的数组。当我尝试使用这样的无符号 int 索引访问数组元素时:xyz[level],我收到“缓冲区溢出”警告。从逻辑上讲,我很确定该级别不会超过 10。如何避免此警告?