Storage violation

Storage violation

A Storage violation is an attempt at, or successful alteration ("or corruption") of computer memory that is intended to have the special status of "protected" (that is - not alterable - at least in the current mode of operation).

It normally applies to selected memory locations having special significance to the operating system or "owned" by a particular thread.

Computer storage (another term for memory), is often dynamically allocated from a pool of available memory for a particular "process" such as a program subroutine call. For instance, if one megabyte of memory is available for several concurrent applications to use, each application may request its own 'section' of this memory for its own use.

The application may further sub-divide its own allocated memory to process internal functions such as saving Stack (data structure), working memory and bitmap images.

A common type of Storage violation is known as a stack buffer overflow where a program attempts to alter a memory location beyond its' allocated memory. For instance, a "storage violation" occurs if the program tries to alter the eleventh element of an array ("table") of only 10 entries (elements) in size. Imagine an array of 10 x 4-letter words in an allocated memory of 40 bytes.

The memory at the address of the eleventh entry may belong to another application program or another thread of the same application. If this is so, the other application now has corrupted memory without necessarily being aware of it. This has traditionally been the source of many unsolved system crashes within computing and sometimes referred to as "Action at a distance (computer science)". The use of pointers in some Programming languages makes it easier to corrupt storage if the pointers are incremented beyond their appropriate range at any given point during execution.

Use of a corrupt Goto address (sometimes known as a "Wild branch") may also result in execution of code which results in possibly random execution of perfectly valid instructions - but almost certainly completely out of context with appropriate register values for that code. In this case, the "COMEFROM" address may be extremely difficult or even impossible to determine without suitable instruction tracing or monitoring software (but invoked prior to the error occurring - if an exact rerun is even possible - which, in high volume, real-time transaction processing, is seldom the case).

In some instances, it is necessary to switch into privileged mode to enable storage alteration to be successful. This is normally achieved by a special instruction which itself might be privileged.

This right or "privilege" may only be authorized for some users or software or systems on a higher level of operation such as the Operating System itself.

Prevention

Some programming languages use software Bounds checking to prevent these occurrences.Some program debugging software will also detect violations during testing.

Some computer hardware protection features can be used to prevent these too but generally operate on larger blocks of memory than might be appropriate for a given process.

Operating systems generally execute in a "privileged" mode allowing their instructions to alter storage at any location in memory.

See also

* Bounds checking
* Array
* Storage protection


Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Look at other dictionaries:

  • Modern searches for Lorentz violation — Important motivations for modern searches for Lorentz violation are deviations from Lorentz invariance (and thus special relativity) predicted by some variations of quantum gravity, string theory, and some alternatives to general relativity.… …   Wikipedia

  • Remote storage digital video recorder — (RS DVR) is a network based digital video recorder (DVR) stored at the provider s central office rather than at the consumer s private home. The RS DVR is still being tested by Cablevision and pending approval by Judge Denny Chi to insure it does …   Wikipedia

  • Memory protection — is a way to control memory access rights on a computer, and is a part of most modern operating systems. The main purpose of memory protection is to prevent a process from accessing memory that has not been allocated to it. This prevents a bug… …   Wikipedia

  • Pointer (computing) — This article is about the programming data type. For the input interface (for example a computer mouse), see Pointing device. Pointer a pointing to the memory address associated with variable b. Note that in this particular diagram, the computing …   Wikipedia

  • Software bug — To report a MediaWiki error on Wikipedia, see Wikipedia:Bug reports. A software bug is the common term used to describe an error, flaw, mistake, failure, or fault in a computer program or system that produces an incorrect or unexpected result, or …   Wikipedia

  • IBM OLIVER (CICS interactive test/debug) — OLIVER (CICS interactive test/debug) was a proprietary testing and debugging toolkit for interactively testing programs designed to run on IBM s Customer Information Control System (CICS) on IBM s System/360/370/390 architecture. It provided… …   Wikipedia

  • Защита памяти — (англ. Memory protection)  это способ управления правами доступа к отдельным регионам памяти. Используется большинством многозадачных операционных систем. Основной целью защиты памяти является запрет доступа процессу к той памяти,… …   Википедия

  • Computers and Information Systems — ▪ 2009 Introduction Smartphone: The New Computer.       The market for the smartphone in reality a handheld computer for Web browsing, e mail, music, and video that was integrated with a cellular telephone continued to grow in 2008. According to… …   Universalium

  • Gun laws in the United States (by state) — U.S. Firearms Legal Topics Assault weapons ban ATF Bureau Brady Handgun Violence Prevention Act Concealed carry in the U.S. Domestic Violence Offender Gun Ban …   Wikipedia

  • Mathematics and Physical Sciences — ▪ 2003 Introduction Mathematics       Mathematics in 2002 was marked by two discoveries in number theory. The first may have practical implications; the second satisfied a 150 year old curiosity.       Computer scientist Manindra Agrawal of the… …   Universalium

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”