Curl projekti kood on loobunud strcpy funktsiooni kasutamisest.

Daniel Stenberg, curl'i arendaja, teatas, et projektis lÔpetatakse strcpy() kasutamine ja selle funktsiooni edasine rakendamine keelatakse. See otsus on jÀtk eelmise aasta algatusele loobuda strncpy() funktsiooni kasutamisest, mis kopeerib mÀÀratud arvu byte'e sisendstringist. strncpy() kasutamine tÔi endaga kaasa vigade ohu, mis tulenes nullmÀrgi vahelejÀtmisest vÔi nullidega tÀitmise lisamisest.

Viidatud strncpy() kutsed on asendatud strcpy() funktsiooni kutsumisega, mille eelĂ”htul on mĂ€lu eraldamine toestatud lĂ€hteteksti suuruse jĂ€rgi vĂ”i on olemas kontroll lĂ€hteteksti ja sihtpuhvri suuruse vastavuse ĂŒle. Asendamine strlcpy() funktsiooniga ei olnud vajalik, kuna alati pidi kogu string ĂŒmber kopeerima vĂ”i veateate tagastama.

NĂŒĂŒd on kĂ”ik strcpy() kutsed asendatud uue funktsiooniga curlx_strcopy(dest, dsize, src, slen). Funktsioon curlx_strcopy() nĂ”uab lĂ€hteteksti ja sihtpuhvri suuruse mÀÀramist, arvestades, et sihtpuhver peab olema suurem kui lĂ€htetekst, et mahutada nullmĂ€rk, mis lisatakse funktsiooni poolt lĂ”puks, et vĂ€ltida selle vahelejĂ€tmist kopeerimise ajal. Kui sihtpuhvri suurus on suurem kui null, kuid selle suurus ei ole piisav sihtstringi kopeerimiseks, siis lisatakse nullbyte algusesse. void curlx_strcopy(char *dest, size_t dsize, const char *src, size_t slen) { DEBUGASSERT(slen < dsize); if(slen < dsize) { memcpy(dest, src, slen); dest[slen] = 0; } else if(dsize) dest[0] = 0; }

strcpy() asendamine curlx_strcopy() funktsiooniga on tehtud, kuna eksisteerib inimlike eksimuste oht, mis vĂ”ib pĂ”hjustada koodi jagunemist kontrolle/eraldada mĂ€lu ja strcpy() kutsumist, nĂ€iteks mĂ”tlematult ainult osa koodist ĂŒleviimisel vĂ”i koodi kleepimisel kontrolli ja strcpy() kutsumise vahele. Lisaks aitab strcpy() kasutamise lĂ”petamine eemaldada valehaardelisuste voolu AI-tööriistadest, mis peavad strcpy() olemasolu haavatavuseks, arvestamata koodis olevate kontrollide olemasolu.

Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster