I whakatuwherahia e Intel te waehere punaha ako miihini ControlFlag hei tautuhi i nga pepeke kei roto i te waehere

Kua kitea e Intel nga whanaketanga e pa ana ki te kaupapa rangahau ControlFlag, e whai ana ki te hanga i tetahi punaha ako miihini hei whakapai ake i te kounga waehere. Ko te kete taputapu i whakaritea e te kaupapa ka taea, i runga i te tauira kua whakangungua i runga i te maha o nga waehere o naianei, ki te kite i nga momo hapa me nga momo rereke i roto i nga tuhinga puna i tuhia ki nga reo taumata teitei penei i te C/C++. He pai te punaha mo te tautuhi i nga momo raru i roto i te waehere, mai i te tirotiro i nga momo hapa me nga momo huinga he, ki te kimi i nga arowhai NULL i ngaro i roto i nga tohu tohu me nga raru mahara. Ko te waehere ControlFlag kua tuhia ki te C++, he puna tuwhera i raro i te raihana MIT.

Ko te punaha he ako-whaiaro ma te hanga tauira tauanga o te huinga waehere o naianei o nga kaupapa tuwhera kua whakaputaina ki GitHub me nga momo putunga a te iwi. I te waahi ako, ka whakatauhia e te punaha nga tauira angamaheni mo te hanga hanganga i roto i te waehere me te hanga i tetahi rakau whakahiato o nga hononga i waenga i enei tauira, e whakaatu ana i te rere o te mahi waehere i roto i te kaupapa. Ko te mutunga mai, ka hangaia he rakau whakatau tohutoro e whakakotahi ana i te wheako ki te whakawhanake i nga tuhinga puna katoa kua tātarihia.

Ko te waehere e whakamatautauria ana ka haere i roto i te tukanga rite ki te tautuhi i nga tauira ka tirohia ki te rakau whakatau tohutoro. Ko nga rereketanga nui me nga manga tata e tohu ana i te ahua o te ahua o te ahua o te tauira e tirohia ana. Ka taea hoki e te punaha te tautuhi i tetahi hapa i roto i te tauira, engari ki te whakaaro he whakatikatika. Hei tauira, i roto i te waehere OpenSSL, i kitea te hanga "(s1 == NULL) ∧ (s2 == NULL)", i puta 8 noa nga wa i roto i te rakau syntax, ko te peka tata me te uara "(s1 == NULL) || (s2 == NULL)" tata ki te 7 mano nga wa. I kitea ano e te punaha he rerekee "(s1 == NULL) | (s2 == NULL)" i puta 32 nga wa i roto i te rakau.

I whakatuwherahia e Intel te waehere punaha ako miihini ControlFlag hei tautuhi i nga pepeke kei roto i te waehere

I te wa e paopao ana i te snippet waehere "mehemea (x = 7) y = x;" kua whakatauhia e te punaha ko te hanga "taurangi == tau" ka whakamahia i roto i te korero "mehemea" hei whakatairite i nga uara tau, no reira, he nui te tupono, ko te tohu "taurangi = tau" i roto i te kupu "mehemea" ka puta mai i te he typo. Ka mau ano hoki e nga kaitirotiro tuuturu tawhito he hapa penei, engari kaore i rite ki a raatau, kaore a ControlFlag e whakamahi i nga ture kua oti te hanga he uaua ki te kite i nga whiringa katoa ka taea, engari kei runga i nga tatauranga o te whakamahi i nga momo hanga katoa i roto i te maha o nga waahanga. kaupapa.

Hei whakamatautau, ma te whakamahi i te ControlFlag i roto i te waehere puna o te whaipainga cURL, e kiia ana he tauira o te kounga teitei me te waehere kua whakamanahia, i kitea he hapa kaore i kitea e nga kaitirotiro tuuturu i te wa e whakamahi ana i te huānga hanganga "s->keepon", he momo tau, engari i whakaritea ki te uara boolean TRUE . I roto i te waehere OpenSSL, i tua atu i te raruraru i runga ake nei me "(s1 == NULL) ∧ (s2 == NULL)", he anomaly ano kei roto i nga korero "(-2 == rv)" (ko te iti he typo. ) me "BIO_puts(bp, ":")

Source: opennet.ru

Tāpiri i te kōrero