Kua whakaatuhia e tetahi roopu mai i te Whare Wananga o Minnesota nga korero mo nga huringa kino i tukuna.

Whai muri i tetahi reta whakapaha, he roopu kairangahau mai i te Whare Wananga o Minnesota, na Greg Croah-Hartman te whakaae ki nga whakarereketanga ki te kernel Linux, i whakaatu i nga korero taipitopito mo nga papanga i tukuna ki nga kaiwhakawhanake kernel me nga reta ki nga kaitiaki. e pa ana ki enei papanga.

Ko te mea nui i paopaohia nga papa raru katoa i runga i te kaupapa a nga kai-tiaki, karekau he papaki kotahi i whakaaetia. Ma tenei meka e marama ana he aha te mahi nanakia a Greg Croah-Hartman, i te mea kaore i te maarama he aha nga mahi a nga kairangahau mena kua whakaaehia nga papa e nga kai tiaki. I muri mai, i kii ratou i whakaaro ratou ki te ripoata i tetahi pepeha, a kare e whakaae kia haere nga papa ki a Git, engari kaore i te maarama he aha ta raatau mahi me pehea te tawhiti ka haere.

Tapeke i Akuhata 2020 mai i nga wahitau ingoamuna [email tiakina] и [email tiakina] (reta na James Bond) e rima nga papa i tukuna: e rua tika (1, 2) me te toru kei roto nga hapa huna (1, 2, 3), ka hanga tikanga mo nga whakaraeraetanga. He 1-4 noa iho nga rarangi waehere kei ia papaki. Ko te whakaaro nui i muri mai i nga taapiri pohehe ko te whakatika i te rerenga mahara ka puta he ahuatanga whakaraerae kore utu. I te wiki i muri mai, ka tukuna atu nga korero ki nga kaiwhakawhanake kernel me te tono ki te matapaki mo te kaha ki te whakatairanga i nga whakaraeraetanga i raro i te ahua o nga whakatikatika iti mo nga rerenga mahara, engari kaore he korero mo nga nganatanga o mua ki te tuku i nga waahi kino.

Ko te papaki raru tuatahi i whakatika i te rerenga mahara ma te taapiri waea ki te kfree() i mua i te whakahoki mai i te mana whakahaere mena he hapa, engari i hanga tikanga mo te uru atu ki te waahi mahara i muri i tana wetewete (whakamahi-muri-kore). I paopaohia tenei papaki e te kai tiaki (Jiri Slaby), nana i tohu te raru me te tohu i te tau kua hipa kua whakamatau tetahi ki te tono i tetahi huringa pera i te tuatahi ka whakaaehia, engari ka makahia i muri i te tautuhi i nga tikanga mo te whakaraerae. > p2 = p1[n] = kmalloc_array(64, sizeof(u16), GFP_KERNEL); > - ki te (!p2) whakahokia -ENOMEM; > + ki te (!p2) { > + kfree(p1); > + hoki -ENOMEM; > + }

Kei roto hoki i te papaki tuarua nga tikanga mo te raru kore-whakamahi. Ko te papaki i tohua kaore i whakaaetia e te kai tiaki (Dan Carpenter), nana i whakahē te papaki na tetahi atu raruraru ki te list_add_tail, engari kaore i kite ka taea te tuku i te tohu "chdev" i roto i te mahi put_device, e whakamahia ana i raro i te waea. dev_err(&chdev ->dev..). Heoi, kaore i whakaaetia te papaki, ahakoa mo nga take kaore e pa ana ki te whakaraerae. ki te (ret <0) { + put_device(&chdev->dev); dev_err(&chdev->dev, DRV_NAME ": kfifo_alloc i rahua\n"); ret = -ENOMEM; goto err_fifo;

Ko te papaki tuatoru kaore ano i whakaaehia e te kai tiaki (Miquel Raynal) na tetahi atu pepeke kaore e pa ana ki te whakaraeraetanga (ka waea takirua ki te whakatakoto mo te pdev). mena (!window->virt) { printk(KERN_ERR MOD_NAME ": ioremap(%08lx, %08lx) i rahua\n", window->phys, window->rahi); + pci_dev_put(pdev); puta ki waho; } ... ki te (!map) { printk(KERN_ERR MOD_NAME ": kmalloc rahua"); + pci_dev_put(pdev); puta ki waho; } memset(mahere, 0, rahinga(*mapi)); ... ki te (mtd_device_register(map->mtd, NULL, 0)) {map_destroy(map->mtd); mahere->mtd = NULL; + pci_dev_put(pdev); puta ki waho; }

He mea whakamiharo, 4 i roto i te 5 papaki i kiihia i te tuatahi he raru, engari ko nga kairangahau ano i he, a, i roto i tetahi papaki i raru, ki o raatau whakaaro, i whakaarohia he whakatika tika, me te kore nga tikanga e tumanakohia ana mo te whakamahi mahara i muri i te kore utu. err = pci_request_mem_regions(pdev, nitrox_driver_name); ki te (he) {pci_disable_device(pdev); + dev_err(&pdev->dev, “I rahua te tono rohe mem!\n”); hoki mai he; }

Source: opennet.ru

Tāpiri i te kōrero