De Rust Foundation heeft statistieken gepubliceerd waaruit blijkt dat van de 127.000 significante pakketten die in de catalogus crates.io zijn opgenomen, meer dan 24.000 (19,11%) gebruikmaken van het sleutelwoord "unsafe" om mogelijkheden in te schakelen die onveilig geheugenbeheer in specifieke codeblokken mogelijk maken, zoals pointer dereferencing, aanroepen van externe functies of het wijzigen van statische variabelen. 34,35% van de pakketten doet directe aanroepen naar functies uit andere crate-pakketten waarin de "unsafe" modus wordt gebruikt.
Opgemerkt wordt dat in de meeste gevallen het gebruik van de "unsafe" modus te wijten is aan het aanroepen van code geschreven in andere talen of toegang tot bibliotheken in C/C++. Het pakket met de meeste aanroepen in de "unsafe" modus is het door Microsoft ontwikkelde crate-pakket windows, dat een wrapper is voor de Windows API. Dit pakket heeft 36 miljoen downloads. Unsafe wordt ook gebruikt in de meest populaire pakketten syn (470 miljoen downloads), proc-macro2 (354 miljoen downloads) en libc (345 miljoen downloads).
Om problemen in code uitgevoerd in "unsafe" modus te identificeren, wordt er een interpreter Miri ontwikkeld, die in staat is om toegang buiten de grenzen van buffers, gebruik van geheugen na vrijgave, onjuist gebruik van niet-geĆÆnitialiseerde gegevens, schending van de invariantie van basistypen (bijvoorbeeld bool die niet overeenkomt met de waarden 0 of 1), schending van eigendomsregels van objecten, het ontstaan van race-omstandigheden en geheugenlekken te detecteren.
Bron: opennet.ru
