Jump to content

Stale pointer bug

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Stewartadcock (talk | contribs) at 01:53, 22 February 2004 (ported from FOLDOC). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

stale pointer bug

(Or "aliasing bug") A class of subtle programming errors that can arise in code that does dynamic allocation, especially via malloc or equivalent.

If several pointers address (are "aliases for") a given hunk of storage, it may happen that the storage is freed or reallocated (and thus moved) through one alias and then referenced through another, which may lead to subtle (and possibly intermittent) lossage depending on the state and the allocation history of the malloc arena. This bug can be avoided by never creating aliases for allocated memory, or by use of a higher-level language, such as Lisp, which employs a garbage collector.

The term "aliasing bug" is nowadays associated with C programming, it was already in use in a very similar sense in the ALGOL 60 and Fortran communities in the 1960s.