Affina la tua ricerca . È possibile farlo con le informazioni di debug di stampa e impedendo parti del programma da eseguire . Buffer overflow possono essere difficili da rintracciare perché la prova non è sempre coerente . Tuttavia, se le prove si dispone scompare quando una parte del programma viene impedito di correre , è una buona indicazione che il problema sia quella porzione .
2
leggere il codice sorgente . Una volta che avete abbastanza ristretto la ricerca , guarda attraverso il codice sorgente di qualcosa che potrebbe potenzialmente causare un overflow . A volte è in un ciclo che scrive oltre la lunghezza di una matrice . A volte è una concatenazione di stringhe in una stringa più grande del buffer allocato per quella stringa .
3
Fissare la falla . Se il problema stava scrivendo passato i limiti di un array , assicurarsi che qualunque cosa ha causato che funziona correttamente , o che l'array sia correttamente ridimensionata come necessario. Assicurarsi che tutti i buffer di stringa sono grande abbastanza per contenere le stringhe possono contenere .
4
prendere misure preventive . Utilizzare bounds-checking funzioni in modo da garantire che la memoria non è mai sovrascritto . Dinamicamente ridimensionare gli array , se necessario. Tenere traccia accurata di tutto il potenziale di memoria scrive per garantire che essi non scrivono la zona sbagliata della memoria .
Programmazione © www.354353.com