Tukunga o ControlFlag 1.0, he taputapu mo te tautuhi i nga hapa o te waehere C

Kua whakaputahia e Intel te tukunga nui tuatahi o te taputapu ControlFlag 1.0, e taea ai e koe te tautuhi i nga hapa me nga rereke i roto i te waehere puna ma te whakamahi i te punaha ako miihini kua whakangunguhia i runga i te nui o te waehere o naianei. Kaore i rite ki nga kaitirotiro pateko tuku iho, kaore a ControlFlag e whakamahi i nga ture kua rite, he uaua ki te whakarato mo nga whiringa katoa ka taea, engari kei runga i nga tatauranga mo te whakamahi i nga momo hanga reo i roto i te maha o nga kaupapa o naianei. Ko te waehere ControlFlag kua tuhia ki te C++, ka tuwhera i raro i te raihana MIT.

Ka whakangunguhia te punaha ma te hanga i tetahi tauira tatauranga o te huinga waehere o naianei o nga kaupapa-puna tuwhera i whakaputaina ki GitHub me nga momo putunga a te iwi. I te waahi whakangungu, ka whakatauhia e te punaha nga tauira angamaheni mo te hanga hanganga i roto i te waehere me te hanga i te 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 whanaketanga o nga waehere punaha katoa kua tātarihia. Ko te waehere e arotakehia ana he rite tonu te mahi 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 tauira e tirohia ana.

Tukunga o ControlFlag 1.0, he taputapu mo te tautuhi i nga hapa o te waehere C

Hei tauira mo te kaha o ControlFlag, i tātarihia e nga kaihanga nga waehere puna o nga kaupapa OpenSSL me cURL:

  • Ko nga hanganga rereke "(s1 == NULL) ∧ (s2 == NULL)" me "(s1 == NULL) | (s2 == NULL)" , kaore i te rite ki te tauira e whakamahia ana "(s1 == NULL) || (s2 == NULL)". I tautuhia ano e te waehere nga koohiko i roto i nga korero "(-2 == rv)" (he hapa te iti) me "BIO_puts(bp, ":") <= 0)" (i roto i te horopaki o te tirotiro i te otinga angitu o te te mahi me "== 0").
  • I roto i te cURL, i kitea he hapa kaore i kitea e nga kaitirotiro pateko 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 nga ahuatanga o te putanga ControlFlag 1.0, he tautoko katoa mo nga tauira paerewa mo te reo C me te kaha ki te kite i nga kohikore i roto i nga korero "mehemea". Hei tauira, i te wetewete i te wahanga waehere “mehemea (x = 7) y = x;” Ka whakatauhia e te punaha ko te korero "mehemea" ka whakamahi i te hanga "taurangi == tau" ki te whakatairite i nga uara tau, na te mea pea ko te "taurangi = tau" kei roto i te kupu "mehemea" na te hapa. Kei roto i te kete he tuhinga ka taea e koe te tango i nga putunga reo C kei runga i te GitHub me te whakamahi hei hanga tauira. Kei te waatea ano nga tauira kua rite, ka taea e koe te timata tonu ki te tirotiro i te waehere.

Source: opennet.ru

Tāpiri i te kōrero