Abuse Melding

Je hebt een klacht over de onderstaande posting:

16-09-2010, 23:45 door Anoniem

Ik heb niet naar de code gekeken, maar zo maar een strcat() vervangen met strncat() hoeft niet te betekenen dat het probleem opgelost is. strncat() is een vreemde API die heel vaak verkeerd gebruikt word; het size argument is NIET de buffer size, maar het aantal bytes dat toegevoegd moet worden. strncat() schrijft ook nog een '\0' buiten deze size. Correct gebruik is dus: strncat(dst, src, sizeof(dst) - strlen(dst) - 1); Zonder de - 1 heb je een off-by-one. De size moet dus altijd berekent worden op basis van de al aanwezige data in dst. strncat(dst, src, 0xa0); kan dus nog even goed een overflow veroorzaken tenzij 'dst' leeg is. Als er toevallig al een string in dst zit die heel sizeof(dst) - 1 in beslag neemt schrijf je dus bytes buiten de boundaries van dst.

Beschrijf je klacht (Optioneel):

captcha