Ukukhishwa kwe-ControlFlag 1.0, ithuluzi lokuhlonza amaphutha kukhodi C

I-Intel ishicilele ukukhishwa kokuqala okukhulu kwethuluzi le-ControlFlag 1.0, elikuvumela ukuthi ubone amaphutha nokudidayo kukhodi yomthombo usebenzisa isistimu yokufunda yomshini eqeqeshwe ngenani elikhulu lekhodi ekhona. Ngokungafani nabahlaziyi be-static bendabuko, i-ControlFlag ayisebenzisi imithetho esenziwe ngomumo, lapho kunzima ukuhlinzeka ngakho konke okukhethwa kukho, kodwa kusekelwe kwizibalo zokusetshenziswa kwezilimi ezihlukahlukene zokwakha ngenani elikhulu lamaphrojekthi akhona. Ikhodi ye-ControlFlag ibhalwe ku-C++ futhi ivuliwe itholakala ngaphansi kwelayisensi ye-MIT.

Uhlelo luqeqeshwa ngokwakha imodeli yezibalo yohlu olukhona lwekhodi lwamaphrojekthi omthombo ovulekile ashicilelwe ku-GitHub namakhosombe omphakathi afanayo. Esigabeni sokuqeqesha, isistimu inquma amaphethini ajwayelekile okwakhiwa kwezakhiwo kukhodi futhi yakha isihlahla se-syntactic sokuxhumana phakathi kwalawa maphethini, okubonisa ukugeleza kokwenziwa kwekhodi ohlelweni. Ngenxa yalokho, kwakhiwa isihlahla sokuthatha izinqumo esihlanganisa ukuzizwisa kokuthuthukiswa kwawo wonke amakhodi omthombo ahlaziyiwe. Ikhodi engaphansi kokubuyekezwa ibhekana nenqubo efanayo yokuhlonza amaphethini ahlolwa ngokumelene nesihlahla sesinqumo senkomba. Ukungezwani okukhulu namagatsha angomakhelwane kubonisa ukuba khona kwe-anomaly kuphethini ehlolwayo.

Ukukhishwa kwe-ControlFlag 1.0, ithuluzi lokuhlonza amaphutha kukhodi C

Njengesibonelo samakhono we-ControlFlag, abathuthukisi bahlaziye amakhodi omthombo we-OpenSSL namaphrojekthi we-cURL:

  • Ukwakha okuxakile “(s1 == NULL) ∧ (s2 == NULL)” kanye “(s1 == NULL) | (s2 == NULL)" , engafani nephethini evame ukusetshenziswa "(s1 == NULL) || (s2 == NULL)". Ikhodi iphinde yahlonza okudidayo kunkulumo ethi “(-2 == rv)” (okukhiphayo bekuyi-typo) kanye nethi “BIO_puts(bp, “:”) <= 0)” (emongweni wokuhlola ukuqedwa ngempumelelo umsebenzi bekufanele kube "== 0").
  • Ku-cURL, kutholwe iphutha elingazange libonwe abahlaziyi abamile lapho kusetshenziswa isici sesakhiwo esithi “s->keepon”, esasinohlobo lwezinombolo, kodwa saqhathaniswa nenani le-boolean TRUE.

Phakathi kwezici zenguqulo ye-ControlFlag 1.0, kukhona ukwesekwa okugcwele kwezifanekiso ezijwayelekile zolimi C kanye nekhono lokubona okudidayo kuzinkulumo ezinemibandela ezithi “uma”. Isibonelo, lapho uhlaziya ucezu lwekhodi “uma (x = 7) y = x;” Isistimu izonquma ukuthi isitatimende esithi “uma” ngokuvamile sisebenzisa ukwakhiwa kokuthi “okuguquguqukayo == inombolo” ukuze kuqhathaniswe amanani ezinombolo, ngakho-ke kungenzeka kakhulu ukuthi “okuguquguqukayo = inombolo” kusisho esithi “uma” kubangelwe ukuthayipha. Ikhithi ihlanganisa umbhalo okuvumela ukuthi ulande amakhosombe olimi C akhona kakade ku-GitHub futhi uwasebenzise ukuze wakhe imodeli. Amamodeli enziwe ngomumo nawo ayatholakala, okukuvumela ukuthi uqale ngokushesha ukuhlola ikhodi.

Source: opennet.ru

Engeza amazwana