Ntọhapụ nke ControlFlag 1.0, ngwá ọrụ maka ịchọpụta njehie na koodu C

Intel ebipụtala ntọhapụ mbụ nke ngwá ọrụ ControlFlag 1.0, nke na-enye gị ohere ịchọpụta njehie na ihe adịghị mma na koodu isi mmalite site na iji usoro mmụta igwe zụrụ na nnukwu koodu dị adị. N'adịghị ka omenala static analyzers, ControlFlag adịghị etinye njikere emebere iwu, na nke ọ na-esiri ike inye niile kwere omume nhọrọ, ma dabere na ọnụ ọgụgụ na ojiji nke dị iche iche asụsụ constructs na a nnukwu ọnụ ọgụgụ nke ẹdude oru. Edere koodu ControlFlag na C++ ma meghere ya n'okpuru ikike MIT.

A zụrụ usoro a site n'ịwulite usoro ndekọ aha nke koodu dị adị nke ọrụ mmeghe nke e bipụtara na GitHub na ebe nchekwa ọha ndị yiri ya. N'oge ọzụzụ, usoro ahụ na-ekpebi usoro ndị a na-ahụkarị maka ịmepụta ihe owuwu na koodu ahụ ma wuo osisi syntactic nke njikọ n'etiti usoro ndị a, na-egosipụta nrịanrịa nke koodu ogbugbu na mmemme. N'ihi ya, a na-emepụta osisi na-eme mkpebi na-ejikọta ahụmahụ mmepe nke koodu isi mmalite niile nyochara. Koodu a na-enyocha na-aga n'otu usoro nke ịchọpụta ụkpụrụ nke enyochara megide osisi mkpebi ntụaka. Nnukwu ọdịiche na alaka ndị agbata obi na-egosi ọnụnọ nke anomaly na ụkpụrụ a na-enyocha.

Ntọhapụ nke ControlFlag 1.0, ngwá ọrụ maka ịchọpụta njehie na koodu C

Dịka ọmụmaatụ nke ikike ControlFlag, ndị mmepe nyochara koodu isi mmalite nke ọrụ OpenSSL na cURL:

  • Ihe na-ewu ewu "(s1 == NULL) ∧ (s2 == NULL)" na "(s1 == NULL) | (s2 == NULL)" , nke adabaghị n'ụkpụrụ a na-ejikarị "(s1 == NULL) || (s2 == NULL)". Koodu ahụ gosikwara ihe adịghị mma na okwu ndị a “(-2 == rv)” (mwepu bụ typo) na “BIO_puts(bp, “:”) <= 0)” (n'ihe gbasara ịlele mmecha nke ọma ọrụ ọ kwesịrị ịbụ "== 0").
  • Na CURL, achọpụtara mperi nke ndị nyocha static achọpụtaghị mgbe ha na-eji ihe nhazi “s->keepon”, nke nwere ụdị ọnụọgụ, mana atụnyere uru boolean TRUE.

N'ime njirimara nke ụdị ControlFlag 1.0, enwere nkwado zuru oke maka ndebiri ọkọlọtọ maka asụsụ C yana ike ịchọpụta ihe na-adịghị mma na okwu "ọ bụrụ" ọnọdụ. Dịka ọmụmaatụ, mgbe ị na-enyocha iberibe koodu "ọ bụrụ (x = 7) y = x;" Usoro a ga-ekpebi na nkwupụta "ọ bụrụ" na-ejikarị ihe owuwu "gbanwee == nọmba" atụnyere ụkpụrụ ọnụọgụgụ, ya mere ọ ga-abụ na "mgbanwe = nọmba" dị na okwu "ọ bụrụ" kpatara site na typo. Ngwa ahụ gụnyere edemede na-enye gị ohere ibudata ebe nchekwa asụsụ C dị na GitHub wee jiri ha wuo ihe nlereanya. Ụdị emebere akwadoro dịkwa, na-enye gị ohere ịmalite ịlele koodu ozugbo.

isi: opennet.ru

Tinye a comment