STATUS_STACK_BUFFER_OVERRUN和STATUS_STACK_OVERFLOW有什么区别? [英] What is the difference between STATUS_STACK_BUFFER_OVERRUN and STATUS_STACK_OVERFLOW?

查看:272
本文介绍了STATUS_STACK_BUFFER_OVERRUN和STATUS_STACK_OVERFLOW有什么区别?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我刚刚发现有一个STATUS_STACK_BUFFER_OVERRUN和一个STATUS_STACK_OVERFLOW。那两个之间有什么区别?我刚刚发现堆栈溢出(堆栈耗尽)与堆栈缓冲区溢出不同,但是它不能解释它,或者我听不懂。您能帮帮我吗?

I just found out that there is a STATUS_STACK_BUFFER_OVERRUN and a STATUS_STACK_OVERFLOW. What's the difference between those 2? I just found Stack overflow (stack exhaustion) not the same as stack buffer overflow but either it doesn't explain it or I don't understand it. Can you help me out?

关于
Tobias

Regards Tobias

推荐答案

考虑以下在内存中向下增长的堆栈:

Consider the following stack which grows downward in memory:

+----------------+
| some data      |   |
+----------------+   | growth of stack
| 20-byte string |   V
+----------------+
 limit of stack

当您将20个字节的字符串写入30个字节时,就会发生缓冲区溢出。

A buffer overrun occurs when you write 30 bytes to your 20-byte string. This corrupts entries further up the stack ('some data').

堆栈溢出是当您尝试将其他插入到堆栈中时发生的。堆栈已满时(显示堆栈限制)。堆栈通常受其最大大小限制。

A stack overflow is when you try to push something else on to the stack when it's already full (where it says 'limit of stack'). Stacks are typically limited in their maximum size.

这篇关于STATUS_STACK_BUFFER_OVERRUN和STATUS_STACK_OVERFLOW有什么区别?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆