What is Stack Overflow?

Before we delve in to the concept of stack overflow, you need to understand what the stack is.

Whether it is a hardware event or software program, there has to reserved memory which can be used to create and temporarily store variables, functions and processes on the fly.

This memory region is called the stack. In software languages, these memory spaces are used to create local variables and pass function arguments. The amount of stack memory allocated for specific processes depends on several features like the programming language and the available memory.

This concept can be extrapolated to operating systems.

If your system has 512 MB of available RAM after system processes and you start a process which needs a minimum of 1 GB of available RAM, it immediately shows an error saying “stack overflow” because the program calls too much memory from the stack than is available.

In this case, the application is trying to access memory beyond the stack’s limits and is therefore termed as a buffer overflow or stack overflow. Sometimes, it may occur even because there is not enough space in the memory stacks to run a hardware routine. It typically requires you to increase the memory of your system or reconfigure it to run more processes.

If you open the config.sys file in Windows, you’ll see different lines which mention the stacks, files and buffers of the system. Sometimes, the values in the parameters may have been reconfigured to allow dual boot systems.

For example, if you are using different operating systems in the same machine, one system may have altered the values of the config.sys file to allow better resource utilization. In these cases, you may even try to alter the file if the system allows you to. However, it is not safe to force-change the values and attempt to save it since it directly correlates to your system memory and thus performance.

It is better to have your hardware configuration checked for compatibility issues.

If you want to make sure that there are no hardware conflicts, you should check the port and IRQ settings of the soundcard, graphics card, modem and adapter.