Buffer overflow: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Ho solo riscritto in modo più lineare una frase. |
→Stack overflow: Aggiunta sezione heap overflow |
||
Riga 12:
In [[telecomunicazioni]] si fa riferimento ad una condizione di buffer overflow quando il buffer di un apparato di comunicazione diviene saturo. Esso tipicamente si verifica quando la velocità con cui i dati pervengono ad un nodo supera (temporaneamente o permanentemente) la capacità trasmissiva del nodo stesso. In questo caso, non è detto che l'overflow rappresenti un errore di programmazione (come nel caso degli overflow descritti in precedenza). Infatti, in molte reti di telecomunicazioni risulta impossibile conoscere a priori lo stato di tutti i nodi costituenti il sistema di comunicazione e, pertanto, l'evento di buffer overflow viene considerato fisiologico. Ad ogni modo, per ovviare alla perdita di dati che ne consegue, sono usualmente adottati [[protocolli di rete]] in grado di recuperare i dati persi a mezzo di ritrasmissione degli stessi. A titolo di esempio si rimanda alla problematica del [[controllo della congestione in TCP]].
== Stack overflow ==
{{Vedi anche|stack overflow}}
Lo ''[[stack overflow]]'' consiste ugualmente nella sovrascrittura dell'area dati del programma, ma questa volta la causa è l'attività del programma stesso: chiamando con dei parametri particolari una [[funzione ricorsiva]] del programma, questa accumula chiamate in sospeso sullo stack fino a riempirlo completamente e inizia a sovrascrivere la memoria vicina.
== Heap overflow ==
{{Vedi anche|heap overflow}}
Lo heap overflow avviene quando vi è un eccesso di dati in ingresso nell'area [[heap]] della memoria. Solitamente i [[cracker]] generano volutamente degli heap overflow per perforare programmi scritti in modo non impeccabile.
== Voci correlate ==
|