Dator > hur man fixar en buffertöverskridning

  • hur man fixar en buffertöverskridning


  • Buffertöverskridning eller buffertspill , är ett problem där ett datorprogram skriver mer data till en buffert än har avsatts för att buffert . Som ett resultat skrivs data till en angränsande del av minnet , kanske skriva över andra uppgifter . Detta kan göra att programmet att agera oförutsägbart , vilket kan orsaka den att krascha . Det kan också utnyttjas för att utlösa framförandet av ett skadligt program . Som sådant är det alltid klokt att undvika buffertspill i ett program

    Du behöver : .
    Källkod innehåller buffertspill .
    Kompilator för språket i denna källkod .


    1 .
    Begränsa din sökning . Du kan göra detta genom att skriva ut felsökningsinformation och genom att förebygga delar av program från att köras . Buffertspill kan vara svåra att spåra eftersom bevisen är inte alltid konsekvent . Men om de bevis du har försvinner när en del av programmet är förhindrad från att köra , är det en god indikation på problemet är med den del .
    2 .
    Läs källkoden . När du har tillräckligt minskat din sökning , titta igenom källkoden för något som potentiellt kan orsaka spill . Ibland är det i en loop som skriver bortom längden på en array . Ibland är det en sammansättning av strängar till en sträng är större än den buffert som tilldelats för den raden .
    3 .
    Fix felet . Om problemet var att skriva förbi en array : s gränser , se vad som orsakas som körs på rätt sätt, eller att kedjan är ordentligt storlek efter behov . Se till att alla sträng buffertar är stora nog att rymma strängarna de kan hålla .
    4 .
    vidta förebyggande åtgärder . Använd gränskontroll funktioner för att garantera att minnet är aldrig över. Dynamiskt ändra storlek arrayer vid behov. Håll noggrann koll på alla potentiella minne skriver att se till att de aldrig skriva till fel område i minnet .

    tips och varningar


  • Det finns även tredjepartsprogram som hjälpa till att analysera källkod och program som körs för minnesfel , inklusive Valgrind , BoundsChecker , rena och försäkrar ++.

Previous:Vilka är fördelarna med Java uppgradera ? Next:Java Runtime exec tutorial





Relaterade artiklar


  • specifikationerna för en Sony SDM-hs95p
  • Hur använder jag en Xbox HD-DVD-enhet med en dator?
  • bästa netto laptops
  • hur man uppgraderar en TP-600 2645 51u cpu
  • gateway profil 4 specifikationer
  • specifikationer för HP dv7-1262us
  • hur man bränner cd-avbildningar till en penna enhet
  • ThinkPad t42p specifikationer
  • specifikationer för Compaq V3000
  • specifikationer för ett XFX GeForce 8500GT PCI-E videokort med 256 MB RAM