70% yezvekuchengetedza zvinhu muChromium zvinokonzerwa nememory bugs

Vagadziri veChromium chirongwa analysed 912 yakakwira-njodzi uye yakakosha kusazvibata kwakaonekwa mukutsiga kuburitswa kweChrome kubva 2015, uye vakagumisa kuti makumi manomwe muzana yavo yakakonzerwa nekusachengeteka kwendangariro (zvikanganiso kana uchishanda nemanongedzo muC/C++ kodhi). Hafu yematambudziko aya (70%) inokonzerwa nekuwana kune buffer mushure mekusunungura ndangariro yakabatana nayo (shandisa-mushure-yemahara).

70% yezvekuchengetedza zvinhu muChromium zvinokonzerwa nememory bugs

Pakugadzira Chromium yaive pakutanga akaradzikwa pasi, kuti zvinokwanisika kuti zvikanganiso zvionekwe mukodhi, saka kusimbiswa kukuru kwakaiswa pakushandiswa kwebhokisi rejecha rega kuti rigadzirise migumisiro yekusagadzikana. Parizvino, mikana yekushandisa tekinoroji iyi yasvika painogumira kugona kwavo uyezve kupatsanurwa kuita maitiro hazvigoneke kubva pakuona kwekushandisa zviwanikwa.

Kuchengetedza chengetedzo yecodebase, Google inomanikidza "mutemo wembiriβ€œ, zvinoenderana nekuti chero kodhi yakawedzerwa haifanirwe kusangana nemamiriro maviri kubva matatu: kushanda nedata risingabvumirwe rekuisa, uchishandisa isina kuchengeteka programming mutauro (C/C ++) uye kumhanya neropafadzo dzakakwirira. Mutemo uyu unoreva kuti kodhi yekugadzira data yekunze inofanira kuderedzwa kusvika kune ropafadzo shoma (yakasarudzika) kana kunyorwa mumutauro wakachengeteka wechirongwa.

Kuti uwedzere kuwedzera kuchengetedzeka kweiyo kodhi base, purojekiti yakatangwa kudzivirira zvikanganiso zvekurangarira kubva pakuonekwa muiyo kodhi base. Pane nzira nhatu huru: kugadzira C ++ maraibhurari ane mabasa ekuchengetedza ndangariro uye kuwedzera chiyero chemuunganidzi wemarara, uchishandisa michina yekudzivirira. MTE (Memory Tagging Extension) uye zvinyorwa zvekunyora mumitauro inovimbisa basa rakachengeteka nendangariro (Java, Kotlin, JavaScript, Rust, Swift).

Zvinotarisirwa kuti basa richatariswa munzvimbo mbiri:

  • Shanduko yakakosha kuC ++ yekuvandudza maitiro, iyo isingabatanidzi kukanganisa kwekuita (yekuwedzera miganhu macheki uye kuunganidza marara). Panzvimbo pemanongedzo, zvinokurudzirwa kushandisa mhando MiraclePtr, iyo inokubvumira kuderedza kushandiswa kushandiswa-mushure-kwekusununguka zvikanganiso kune kuparara kusingagadziri kutyisidzira kwekuchengeteka, pasina kuoneka kwakashata kwekuita, kushandiswa kwekuyeuka uye kugadzikana.
  • Kushandiswa kwemitauro yakagadzirirwa kuita ndangariro kuchengetedza cheki panguva yekuunganidza (kuchabvisa kukanganisa kwakashata kwekuita kuri mukati mekutarisa kwakadaro panguva yekuitwa kwekodhi, asi zvinozotungamira kune imwe mari yekuronga kupindirana kwekodhi mumutauro mutsva nekodhi mukati. C++).

Kushandisa ndangariro-akachengeteka maraibhurari ndiyo yakapfava, asi zvakare isina kunyatso shanda nzira. Kunyorazve kodhi muRust yakayerwa seyakanyanya kushanda, asi zvakare inodhura zvakanyanya nzira.

70% yezvekuchengetedza zvinhu muChromium zvinokonzerwa nememory bugs

Source: opennet.ru

Voeg