[so] Warning-uri si alte probleme
Lucian Adrian Grijincu
lucian.grijincu at gmail.com
Sun Nov 25 02:19:07 EET 2007
On Nov 25, 2007 1:29 AM, Dan Badea <dan.badea at microsoft-lab.pub.ro> wrote:
>
>
> Nu stiu despre altii, dar eu nu am invatat in facultatea asta despre alte
> functii de concatenare decat strcat asa ca nu am de gand sa folosesc altele
> pentru teme.
Disclaimer: eu am citit pana aici si mie mi-e de ajuns.
Eu nu am invatat la facultate de strcat. Am avut nevoie de functia
asta cand imi faceam temele, dar nu mi-a "predat-o" nimeni. Dupa
atitudinea ta as zice ca nu prea stii ce-i aia buffer-overrun si de ce
e asta o sursa canonica de vulnerabilitati care duc la exploituri
(impreuna cu prietenii de cataramă strcpy, gets, ș.a.).
Iti recomand cartea asta: http://www.microsoft.com/mspress/books/8753.aspx
Dupa adresa ta de email presupun ca faci parte din stafful
laboratorului Microsoft, si presupun ca poti face rost de cartea asta
fara sa cheltui vre-un ban.
Atitudinea asta: "n-am mai facut asa ceva, asa ca n-o sa fac acum, who
are you to tell me what to do?" nu e foarte sanatoasa on the long run.
Daca cineva iti spune ca s-ar putea sa gresesti și țipă la tine (in
cazul asta compilatorul de la Microsoft) ar trebui sa te intrebi daca
are dreptate si daca chiar exista o problema in codul tau. In loc sa
stai sa scrii mesajul asta puteai sa stai cateva minute sa cauti pe
net sa vezi de ce e strcat considerata "bad practice".
Chiar warning-ul respectiv iti recomanda functia strcat_s
http://msdn2.microsoft.com/en-US/library/d45bbxx4(VS.80).aspx
aici aici si un model de utilizare:
char buf[16];
strcpy_s(buf, 16, "Start");
strcat_s(buf, 16, " End"); // Correct
strcat_s(buf, 16 – strlen(buf), " End"); // Incorrect
Mai exista o varianta imbunatatita a lui strcat: strncat.
strcpy are si el un văr imbunatatit, strncpy.
Make them your friends :)
--
Lucian
More information about the so
mailing list