Integer overflow: Difference between revisions

Content deleted Content added
Security ramifications: some languages implies not all languages. rephrase awkward sentence.
m Security ramifications: add commas and break up run-on
Line 23:
 
==Security ramifications==
In some situations, a program may make the assumption that a variable always contains a positive value. If the variable has a signed integer type, an overflow can cause its value to wrap and become negative,. violatingThis theoverflow assumption contained inviolates the program's assumption and perhapsmay leadinglead to unintended behavior. Similarly, subtracting from a small unsigned value may cause it to wrap to a large positive value which may also be an unexpected behavior. Multiplying or adding two integers may result in a value that is non-negative, but unexpectedly small. If this number is used as the number of bytes to allocate for a buffer, the buffer will be allocated unexpectedly small, leading to a potential buffer overflow.
 
Some languages, such as [[Ada (programming language)|Ada]] (and certain variants of functional languages), provide mechanisms to make accidental overflows trigger an exception condition. In contrast, [[Python (programming language)|Python]] seamlessly converts a number that becomes too large for an integer to a long.<ref>[http://www.python.org/doc/1.4/ref/ref5.html Python documentation], section 5.1 Arithmetic conversions.</ref> In Python 2.4, integers and arbitrary sized longs are unified.<ref>[http://www.python.org/dev/peps/pep-0237/ Python Enhancement Proposal 237]</ref>