Dins l'entorn de la computació, es denomina problema aritmètic al desbordament de dades (overflow) fora del rang de memòria disponible per a un tipus de dada determinat.
Suposem el següent tros de codi d'un programa en C:
# include <stdio.h>
int main ()
{
int x, y;
x = 32000;
y = 7;
printf ("% d", x * y);
}
Aquest seria un cas de desbordament de "int", ja que per al llenguatge C, es defineix el tipus de dada "int" dins del rang de -32764 a +32764, i el resultat d'aquesta multiplicació, queda fora d'aquest rang.
També en el llenguatge Delphi de Borland podria donar-se el següent cas.
function Multiplicar (x, y: Integer): Integer;
begin
try
Result: = x * (999999999 * y);
except
Result: = 0;
end;
end;
En utilitzar aquesta funció, encara que no dona cap error de disseny, de compilació o d'execució, si que retorna
dades errònies que poden causar problemes greus dins del processament de les dades en aquesta aplicació.
En general, aquest tipus d'errors produeixen càlculs erronis i fan que la vulnerabilitat del programa quedi manifesta.
Vegeu també