Talk:Stack overflow

From Wikipedia, the free encyclopedia

[edit] Proposed Rewrite

I've rewritten this article to expand it to include buffer overflows that have a security implication (as well as including the current content), you can see it here. It could use some other eyes (preferably eyes of someone that can spell) and could use some more sources, but all in all I think its a better article...I'm looking for comments, feel free to edit it in my sandbox for now and if there are no objectsion by, say, this time next week, I'll integrate the changes into the existing article... --Michael Lynn 08:38, 8 August 2007 (UTC)

stack buffer overflows are covered in depth elsewhere, while they're occasionally referred to as "stack overflows", I would argue that usage is incorrect. -- taviso 04:45, 9 August 2007 (UTC)
with all due respect, they are almost always called stack overflows, i call on you to find sources to the contrary as I've found more than a few in favor of my possition (not to mention my being a pretty well undisputed expert in the field myself (see Michael Lynn). --Michael Lynn 05:05, 9 August 2007 (UTC)
Michael, I remember your excellent IOS bugs, I work in the field myself. I'm sure you could find several examples of people misusing the term who don't understand the difference between infinite recursion and a buffer overflow, and I wouldn't object to that being documented. -- taviso 00:28, 10 August 2007 (UTC)
Incidentally, TAOCP3,v1,s2.2.2 defines Stack Overflow concisely, and uses the term several times. Redefining the term would be confusing, clearly the stack is not overflowing (the stack pointer isnt moving), where as "stack buffer overflow" makes sense, a buffer overflow, where the buffer is allocated on the stack. -- taviso 01:20, 10 August 2007 (UTC)
I wouldn't be 100% opposed to moving it to "stack buffer overflow", and I do understand where you are coming from, in a very technical sense of the term you are of course correct. That being said however, whenever someone refers to a "stack overflow" when they might otherwise have said "stack buffer overflow" it creates more confusion. If you take a look at the sources in my sandbox article you will find that the two terms are used interchangably throughout. I have more than one paper there that make reference to what you'd call "stack buffer overflow" as a "stack overflow" in the title of their paper. The reason I included the two meanings in one article (and you'll note that I did include the meaning you're refering to at the top of my version) is because, like it or not, the term "stack overflow" has come to also encompass stack buffer overflows as well. Would it perhaps be acceptable to you to keep them all in one article but to insert some wording to explain the difference in terms. All that said, while i prefer to keep it the way I've done it in my rewrite, its not completely out of the question to make a disambiguation page that would seperate the two articles. However if thats what we're going to do I'd like to maintain consitancy with other related articles, like heap overflow. If we change stack overflow to not include this meaning, we should also change heap overflow to be heap buffer overflow, as of course, you don't overflow the heap, but rather a buffer on it. I'm open to your suggestions. --Michael Lynn 02:13, 10 August 2007 (UTC)
As an "undisputed expert" in computer security, I'm sure you're exposed to lots of publications where "stack overflow" is used as an unambiguous contraction of "stack buffer overflow", I know I see this regularly so I completely understand where you're coming from. My argument is really that information security is such a narrow field, and the concept of a stack data structure is so fundamental to computer science that it's not acceptable to re-use our niche definition of the term in this sense. I don't object to using "heap overflow" as a contraction of "heap buffer overflow", as there is no collision.
Out of curiosity, how would you describe something like this?
void foo()
{
  stack_t s[100];
  value_t v;
  while ((v = getvalue()) != -1)
   push(&s, v);
}
"A stack overflow leading to a stack overflow"? Which is the real bug, the stack overflow or the stack overflow? (I'm just kidding :)) -- taviso 16:26, 10 August 2007 (UTC)
I don't feel that stack buffer overflows are niche or even seperate from computer science. Their exploitation to gain control of a vulnerable process surely is, but the concept of a stack buffer overflow is an extremely common source of memory corruption leading to crashes. The fact that they are exploitable does not take away from their signifigance in other contexts. What I'm worried about is that people looking for information about stack buffer overflows are going to be confused when they search for stack overflow and find no information about what they are looking for. Because most texts on the subject, especially introductory texts still refer (incorrectly or not) to stack buffer overflows as stack overflows. I think we either need the two combined or we need a disambiguation page. --Michael Lynn 22:38, 10 August 2007 (UTC)

[edit] Modified Proposal

ok, how is this for a compromise, we keep the existing article largely as it is (but including the sources I found in mine that are relevant to it) and place my article (minus the redundant parts) under the title of "Stack Buffer Overflow", then at the top of both articles we place the little "this article is about foo, to see the other topic, go to bar", that way we keep the article (both of them), and we avoid confusion from either side of this debate because both articles will provide a quick explanation that you might be looking in the wrong place, if so go the correct article...

If this proposal will work for you then I'll go ahead and merge in small extra part of my article that is relevant to the existing one and create a new article under the title of "stack buffer overflow" and put disambiguation linkage at the top of each article...is that compromise agreeable to you? --Michael Lynn 01:24, 11 August 2007 (UTC)

No objections here, sounds like a good idea to me. -- taviso 15:14, 11 August 2007 (UTC)
Ok then, I'll start making the edits and get it ready later today... --Michael Lynn 01:35, 12 August 2007 (UTC)