În fiecare al cincilea pachet în limbajul Rust se utilizează modul unsafe

Organizația Rust Foundation a publicat statistici conform cărora, din 127 de mii de pachete semnificative prezentate în catalogul crates.io, peste 24 de mii (19.11%) utilizează cuvântul cheie „unsafe” pentru a include funcționalități care permit lucrul nesigur cu memoria în blocuri specifice de cod, cum ar fi dereferențierea pointerelor, apelarea funcțiilor externe sau modificarea variabilelor statice. 34.35% din pachete fac apeluri directe la funcții din alte crate-uri, în care se folosește modul „unsafe”.

Se remarcă faptul că, în majoritatea cazurilor, utilizarea modulului „unsafe” este determinată de apelarea codului scris în alte limbaje sau de accesarea bibliotecilor în C/C++. Pachetul cu cel mai mare număr de apeluri în modul „unsafe” este crate-ul windows dezvoltat de Microsoft, care este un wrapper pentru API-ul platformei Windows. Acest pachet are 36 de milioane de descărcări. Unsafe este, de asemenea, utilizat în cele mai populare pachete syn (470 milioane descărcări), proc-macro2 (354 milioane descărcări) și libc (345 milioane descărcări).

Pentru a identifica problemele din codul care rulează în modul „unsafe”, proiectul dezvoltă un interpret Miri, care permite determinarea accesărilor dincolo de limitele bufferelor, utilizarea memoriei după ce aceasta a fost eliberată, utilizarea incorectă a datelor neinițializate, încălcarea invariabilității tipurilor de bază (de exemplu, discrepanța valorii bool cu 0 sau 1), încălcarea regulilor de proprietate a obiectelor, apariția stărilor de competiție și scurgeri de memorie.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster