Overflow
pàgina de desambiguació de Wikimedia / From Wikipedia, the free encyclopedia
L'Overflow és l'efecte que es produeix quan un nombre sobrepassa un cert rang de valors o unes característiques numèriques.
L'article necessita algunes millores de redacció. |
En informàtica i programació, un desbordament de buffer (prové de l'anglès, buffer overflow o buffer overrun) és un error de programari que es produeix quan es copia una quantitat de dades a una àrea que no és suficientment gran per contenir-les, sobreescrivint d'aquesta manera altres zones de memòria. Això és degut generalment a una errada de programació. La conseqüència d'escriure en una zona de memòria imprevista pot donar resultats impredictibles. Existeixen zones de memòria protegides pel sistema operatiu i si es produeix una escriptura fora d'una zona de memòria protegida es produirà una excepció. Sota certes condicions, això es pot arribar a utilitzar per a fins malintencionats.
Per exemple, volem realitzar una operació matemàtica amb dos nombres expressats en binari de 8 bits, i el resultat el guardarem en un buffer de 8 bits. Si el resultat de l'operació és un nombre binari de 9 bits, el buffer no el pot emmagatzemar completament i, per tant, perdrem informació. Aquest bit de més que tenim n'anomenem carry.
Dins del camp de la informàtica, existeixen diferents tipus d'overflow que encara avui dia són impredictibles i difícils de solucionar. Tenim un molt conegut, l'aritmètic overflow que es genera en sumar dos nombres i sortir un tercer amb una mida més gran del que s'esperava (exemple anterior, tot i que s'hi pot trobar en molts altres operacions). També hi trobem el stack overflow o desbordament de pila, que es produeix quan un programa o un procés de l'ordinador fa massa crides a subrutines i col·lapsa la pila. I per últim, el més general, el buffer overflow, que és el més comú, i es produeix quan les dades entrants (d'un programa o subrutina) excedeixen la mida del buffer i provoca una pèrdua d'informació.