Ko te Linux 5.12 kernel kua tango i te KFence subsystem kia kitea nga hapa i te wa e mahi ana me te mahara

Ko te Linux kernel 5.12, kei te whakawhanake, kei roto i te whakatinanatanga o te tikanga KFence (Kernel Electric Fence), e arowhai ana i te whakahaerenga mahara, te hopu i nga paheketanga, te urunga mahara i muri i te wateatanga, me etahi atu hapa o te karaehe rite.

He rite ano te mahi i roto i te kaara i roto i te ahua o te whiringa hanga KASAN (Kaiwhakahaere wahitau kernel, e whakamahi ana i te Wāhitau Sanitizer i roto i te gcc hou me te clang) - heoi, i tuuhia te nuinga mo te whakamahi patuiro. He rereke te punaha KFence mai i te KASAN i roto i tana tere tere mahi, na reira ka taea te whakamahi i tenei waahanga ahakoa i runga i nga punaha i roto i nga punaha mahi.

Ma te tono i runga i nga punaha whakangao ka taea te hopu i nga hapa mahara karekau e puta i nga oma whakamatautau ka puta noa i nga wa e mahi ana, i te waa roa ranei o te mahi (he nui te waa mahi). Hei taapiri, ko te whakamahi KFence i runga i nga punaha whakaputa ka taea te whakanui ake i te maha o nga miihini e uru ana ki te tirotiro i te mahi o te kernel me te mahara.

Ka taea e KFence te iti o te kawenga-motuhake o runga ake ma te whakauru i nga wharangi kaitiaki ki roto i te puranga i nga waa kua whakaritea. Whai muri i te paunga o te wa whakamarumaru e whai ake nei, ko KFence, na roto i te punaha tohanga mahara (SLAB, SLUB allocator ranei), ka taapirihia te wharangi whakamarumaru o muri mai i te puna ahanoa KFence, ka tiimata he purongo kaatete wa hou. Ko ia ahanoa KFence kei roto i tetahi wharangi mahara motuhake, a ko nga wharangi mahara kei te taha maui me te taha matau ka hanga i nga wharangi tiaki, ko te rahi ka tohua matapōkeretia.

No reira, ka wehea nga wharangi me nga taonga mai i a ratau e nga wharangi whakamarumaru, ka whirihorahia hei whakaputa "hapa wharangi" i runga i te urunga. Hei kite i nga tuhi i waho o te rohe ki roto i nga wharangi ahanoa, ka whakamahia ano nga "rohe whero" i runga i te tauira, e noho ana te mahara kaore e whakamahia e nga taonga, ka toe ina whakatiarohia te rahi o nga wharangi mahara. —+————+————+————+————+————+— | xxxxxxxxx | Aue: | xxxxxxxxx | :O | xxxxxxxxx | | xxxxxxxxx | B: | xxxxxxxxx | :B | xxxxxxxxx | | x KAITIAKI x | J : Whero- | x KAITIAKI x | Whero- : J | x KAITIAKI x | | xxxxxxxxx | E: WHARE | xxxxxxxxx | WAHI: E | xxxxxxxxx | | xxxxxxxxx | C: | xxxxxxxxx | :C | xxxxxxxxx | | xxxxxxxxx | T: | xxxxxxxxx | : T | xxxxxxxxx | —+————+————+————+————+————+—

Mena ka ngana ki te uru atu ki tetahi waahi kei waho o nga rohe aukati, ka pa te mahi ki te whaarangi whakamarumaru, ka puta he "hapa wharangi", ka haukotia te KFence me te tuhi korero mo te raru kua tautuhia. Ma te taunoa, kaore a KFence e aukati i te hapa ka whakaatu noa i te whakatupato i roto i te raarangi, engari he "panic_on_warn" te whakatakotoranga ka taea e koe te whakauru i te kernel ki roto i te ahua ohorere mena ka kitea he hapa.

Source: opennet.ru

Tāpiri i te kōrero