Intel waxay furtay koodhka barashada mashiinka ControlFlag si ay u aqoonsato dhiqlaha koodka

Intel waxay ogaatay horumarro la xiriira mashruuca cilmi baarista ee ControlFlag, oo loogu talagalay abuurista nidaamka barashada mashiinka si loo hagaajiyo tayada code. Qalabka uu diyaariyay mashruucu wuxuu ogolaanayaa, iyadoo lagu salaynayo qaab lagu tababaray tiro badan oo kood ah, in lagu ogaado khaladaad kala duwan iyo cillado ku jira qoraallada isha ee ku qoran luqadaha heerka sare ah sida C/C++. Nidaamku wuxuu ku habboon yahay in lagu aqoonsado noocyada kala duwan ee dhibaatooyinka koodka, laga bilaabo ogaanshaha qoraalada iyo nooca khaldan ee isku dhafan, si loo ogaado jeegaga NULL ee maqan ee tilmaamayaasha iyo dhibaatooyinka xusuusta. Koodhka ControlFlag wuxuu ku qoran yahay C++ waana il furan oo hoos timaada shatiga MIT.

Nidaamku waa is-barasho iyadoo la dhisayo qaab-tirakoobeedka nidaamka koodka jira ee mashaariicda furan ee lagu daabacay GitHub iyo meelaha kale ee dadweynaha. Marxaladda waxbarashada, nidaamku wuxuu go'aamiyaa qaababka caadiga ah ee lagu dhisayo qaab-dhismeedka koodka wuxuuna dhisaa geed isku-dhafan oo isku xira qaababkan, kaas oo ka tarjumaya socodka fulinta code ee barnaamijka. Natiijo ahaan, geed go'aan tixraaceed ayaa la sameeyay kaas oo isku daraya waayo-aragnimada horumarinta dhammaan qoraallada isha ee la falanqeeyay.

Koodhka la tijaabinayo waxa uu maraa hab la mid ah oo lagu garto qaababka lagu hubiyay geedka go'aanka tixraaca. Farqiga weyn ee laamaha deriska ayaa muujinaya jiritaanka cillad ku jirta qaabka la hubinayo. Nidaamku wuxuu sidoo kale u oggolaanayaa ma aha oo kaliya in la aqoonsado qaladka template, laakiin sidoo kale inuu soo jeediyo sixid. Tusaale ahaan, koodhka OpenSSL, dhismaha "(s1 == NULL) ∧ (s2 == NULL)" ayaa la helay, kaas oo ka dhacay 8 jeer oo keliya geedka syntax, halka laanta ugu dhow ee qiimaha "(s1 ==) NULL) || (s2 == NULL)" waxay dhacday qiyaastii 7 kun oo jeer. Nidaamku wuxuu kaloo ogaaday cillad "(s1 == NULL) | (s2 == NULL)" oo ka dhacay 32 jeer geedka dhexdiisa.

Intel waxay furtay koodhka barashada mashiinka ControlFlag si ay u aqoonsato dhiqlaha koodka

Marka la kala saarayo godadka koodka "haddii (x = 7) y = x;" Nidaamku wuxuu go'aamiyay in dhismaha "la beddeli karo == nambarka" sida caadiga ah loo isticmaalo qoraalka "haddii" si loo barbardhigo qiyamka tirada, sidaas darteed, oo leh suurtogalnimo sare, tilmaanta "la beddeli karo = lambar" ee "haddii" tibaaxda waxaa sababay typo. Falanqeeyayaasha dhaqameed ee caadiga ah ayaa sidoo kale qaban doona qaladka noocan oo kale ah, laakiin si ka duwan iyaga, ControlFlag ma isticmaalo xeerar diyaarsan oo ay adag tahay in la saadaaliyo dhammaan fursadaha suurtagalka ah, laakiin waxay ku saleysan tahay tirakoobka isticmaalka dhammaan noocyada dhismooyinka tiro badan. mashaariicda.

Tijaabo ahaan, isticmaalka ControlFlag ee koodhka isha ee utility cURL, kaas oo inta badan lagu soo qaato tusaale ahaan kood tayo sare leh oo la xaqiijiyay, khalad aan la ogaanin falanqeeyayaasha joogtada ah ayaa la ogaaday markii la isticmaalayo qaybta qaabdhismeedka "s->keepon", kaas oo lahaa nooc nambaro ah, laakiin la barbar dhigay qiimaha boolean ee RUN . Koodhka OpenSSL, marka lagu daro dhibaatada aan soo sheegnay ee "(s1 == NULL) ∧ (s2 == NULL)", waxaa sidoo kale jiray cillado ku jira tibaaxaha "(-2 == rv)" (laga jaray wuxuu ahaa typo) ) iyo "BIO_puts(bp, ":")

Source: opennet.ru

Add a comment