Vsak peti paket Rust uporablja nevaren način

Fundacija Rust je objavila statistiko, po kateri od 127 tisoč pomembnih paketov, predstavljenih v katalogu crates.io, več kot 24 tisoč (19.11 %) uporablja ključno besedo “unsafe” za omogočanje funkcij, ki omogočajo nevarno delovanje pomnilnika v posameznih blokih kodo, kot je dereferenciranje kazalcev, klicanje zunanjih funkcij ali spreminjanje statičnih spremenljivk. 34.35 % paketov neposredno kliče funkcije iz drugih paketov zaboja, ki uporabljajo »nevaren« način.

Ugotovljeno je, da je v večini primerov uporaba »nevarnega« načina posledica klicev kode, napisane v drugih jezikih ali knjižnicah C/C++. Paket z največjim številom klicev v »nevarnem« načinu je paket Windows crate, ki ga je razvil Microsoft in je ovoj okoli API-ja platforme. WindowsTa paket je bil prenesen 36 milijonovkrat. Paket Unsafe se uporablja tudi v najbolj priljubljenih paketih: syn (470 milijonov prenosov), proc-macro2 (354 milijonov prenosov) in libc (345 milijonov prenosov).

Za prepoznavanje težav v kodi, ki se izvaja v "nevarnem" načinu, projekt razvija tolmač Miri, ki omogoča prepoznavanje dostopov izven meja medpomnilnikov, porabe pomnilnika po sprostitvi, nepravilne uporabe neinicializiranih podatkov, kršitev invariantnosti osnovnih tipov (na primer bool ne ustreza vrednosti 0 ali 1) , kršitev pravil o lastništvu objektov, pojav dirkalnih pogojev in puščanje pomnilnika.

Vir: opennet.ru

Kupite zanesljivo gostovanje za strani z DDoS zaščito, VPS VDS strežniki 🔥 Kupite zanesljivo spletno gostovanje z zaščito DDoS, VPS VDS strežniki | ProHoster