Kutulutsidwa kwa ControlFlag 1.0, chida chodziwira zolakwika mu C code

Intel yasindikiza kutulutsidwa kwakukulu koyamba kwa chida cha ControlFlag 1.0, chomwe chimakulolani kuti muzindikire zolakwika ndi zolakwika mu code source pogwiritsa ntchito makina ophunzirira makina ophunzitsidwa pa chiwerengero chachikulu cha code yomwe ilipo. Mosiyana ndi ma analyzer achikhalidwe, ControlFlag sagwiritsa ntchito malamulo okonzeka, momwe zimakhala zovuta kupereka njira zonse zomwe zingatheke, koma zimachokera ku ziwerengero za kugwiritsa ntchito zilankhulo zosiyanasiyana zomwe zimapangidwira ntchito zambiri zomwe zilipo. Khodi ya ControlFlag imalembedwa mu C ++ ndipo imatsegulidwa pansi pa layisensi ya MIT.

Dongosololi limaphunzitsidwa popanga chiwerengero chamitundu yambiri yamapulojekiti otseguka omwe amafalitsidwa mu GitHub ndi malo ena osungira anthu. Pa gawo la maphunziro, dongosololi limasankha njira zopangira zomangira mu code ndikupanga mtengo wolumikizana pakati pa machitidwewa, kuwonetsa kuyenda kwa ma code mu pulogalamuyi. Zotsatira zake, mtengo wopangira zisankho umapangidwa womwe umaphatikiza zochitika zachitukuko zamakhodi onse omwe amawunikidwa. Khodi yomwe ikuwunikiridwayo imachitanso njira yofananira yozindikiritsa mawonekedwe omwe amawunikiridwa ndi mtengo wachigamulo. Kusagwirizana kwakukulu ndi nthambi zoyandikana nazo kukuwonetsa kukhalapo kwa kusakhazikika munjira yomwe ikufufuzidwa.

Kutulutsidwa kwa ControlFlag 1.0, chida chodziwira zolakwika mu C code

Monga chitsanzo cha kuthekera kwa ControlFlag, opanga adasanthula magwero a OpenSSL ndi ma projekiti a cURL:

  • Zomanga modabwitsa “(s1 == NULL) ∧ (s2 == NULL)” ndi “(s1 == NULL) | (s2 == NULL)" , zomwe sizikugwirizana ndi zomwe zimagwiritsidwa ntchito kawirikawiri "(s1 == NULL) || (s2 == NULL)". Khodiyo idazindikiranso zolakwika m'mawu akuti "(-2 == rv)" (kuchotsera kunali typo) ndi "BIO_puts(bp, ":") <= 0)" (m'mawu owonetsetsa kuti ntchitoyo yatha bwino. ntchito iyenera kukhala "== 0").
  • Mu cURL, cholakwika chinapezeka chomwe sichinawonekere ndi osanthula osasunthika akamagwiritsa ntchito gawo la "s->keepon", lomwe linali ndi mtundu wa manambala, koma poyerekeza ndi mtengo wa boolean TRUE.

Zina mwazinthu za mtundu wa ControlFlag 1.0, pali chithandizo chokwanira cha ma tempuleti okhazikika a chilankhulo cha C komanso kuthekera kozindikira zolakwika m'mawu ovomerezeka a "ngati". Mwachitsanzo, posanthula kachidutswa ka code "ngati (x = 7) y = x;" Dongosololi lidzatsimikizira kuti mawu akuti "ngati" nthawi zambiri amagwiritsa ntchito "kusinthika == nambala" kufananiza manambala, kotero ndizotheka kwambiri kuti "zosinthika = nambala" mu mawu akuti "ngati" zimayambitsidwa ndi typo. Chidacho chimaphatikizapo zolemba zomwe zimakupatsani mwayi wotsitsa zosungira za chilankhulo cha C pa GitHub ndikuzigwiritsa ntchito kupanga chitsanzocho. Zitsanzo zokonzekera ziliponso, zomwe zimakulolani kuti muyambe kuyang'ana code.

Source: opennet.ru

Kuwonjezera ndemanga