Lẹ́yìn lẹ́tà ìtọrọ àforíjì tí wọ́n fi sílẹ̀, àwùjọ àwọn olùwádìí láti Yunifásítì ti Minnesota gba àwọn àyípadà sí ekuro náà Linux Láti ibi tí Greg Kroah-Hartman ti dí, ó fi àwọn àlàyé tó kún rẹ́rẹ́ hàn nípa àwọn àpò tí a fi ránṣẹ́ sí àwọn olùgbékalẹ̀ kernel àti ìbánisọ̀rọ̀ pẹ̀lú àwọn olùtọ́jú tí ó ní í ṣe pẹ̀lú àwọn àpò wọ̀nyí.
O ṣe akiyesi pe gbogbo awọn abulẹ iṣoro ni a kọ ni ipilẹṣẹ ti awọn olutọju; Otitọ yii jẹ ki o ṣe alaye idi ti Greg Croah-Hartman ṣe huwa lile, nitori ko ṣe akiyesi kini awọn oniwadi yoo ti ṣe ti awọn abulẹ ba ti fọwọsi nipasẹ awọn olutọju. Ni ẹhin, wọn sọ pe wọn pinnu lati jabo kokoro kan ati pe kii yoo gba laaye awọn abulẹ lati lọ si Git, ṣugbọn ko ṣe akiyesi ohun ti wọn yoo ti ṣe gaan ati bii wọn le ti lọ.
Ni apapọ, ni Oṣu Kẹjọ ọdun 2020, lati awọn adirẹsi acostag alailorukọ.ubuntuÀwọn àtúnṣe márùn-ún ni a fi ránṣẹ́ sí @gmail.com àti jameslouisebond@gmail.com (ìméèlì náà wá láti ọ̀dọ̀ James Bond): méjì tí ó tọ́ (1, 2) àti mẹ́ta tí ó ní àwọn àṣìṣe tí a fi pamọ́ (1, 2, 3) tí ó dá àwọn ipò sílẹ̀ fún àwọn àìlera. Àtúnṣe kọ̀ọ̀kan ní ìlà 1-4 ti kódì nìkan. Èrò pàtàkì tí ó wà lẹ́yìn àwọn àtúnṣe àṣìṣe ni pé ṣíṣe àtúnṣe ìjáde ìrántí lè dá àìlera sílẹ̀ nítorí àìní méjì. Ní ọ̀sẹ̀ kan lẹ́yìn náà, a pe àwọn olùgbékalẹ̀ kernel láti jíròrò ìṣeéṣe ti gbígbé àwọn àìlera náà lárugẹ lábẹ́ àwọ̀ àwọn àtúnṣe ìjáde ìrántí tí kò ṣe pàtàkì, ṣùgbọ́n a kò mẹ́nu kàn ohunkóhun nípa àwọn ìgbìyànjú ìṣáájú láti fi àwọn àtúnṣe búburú ránṣẹ́.
Patch iṣoro akọkọ ṣe atunṣe jijo iranti nipa fifi ipe kun si kfree () ṣaaju ki o to pada iṣakoso ni ọran ti aṣiṣe, ṣugbọn ṣẹda awọn ipo fun iraye si agbegbe iranti lẹhin ti o ti ni ominira (lilo-lẹhin-ọfẹ). Patch yii ni a kọ silẹ nipasẹ olutọju (Jiri Slaby), ẹniti o ṣe idanimọ iṣoro naa ati tọka si pe ọdun kan sẹyin ẹnikan ti gbiyanju tẹlẹ lati daba iru iyipada kan ati pe o ti gba ni ibẹrẹ, ṣugbọn lẹhinna asonu lẹhin idanimọ awọn ipo fun ailagbara naa. > p2 = p1 [n] = kmalloc_array (64, sizeof (u16), GFP_KERNEL); > - ti (! p2) pada -ENOMEM; > + ti (!p2) {> + kfree (p1); > + pada -ENOMEM; > +}
Patch keji tun ni awọn ipo ninu fun iṣoro lilo-lẹhin-ọfẹ. Patch pàtó kan ko gba nipasẹ olutọju (Dan Carpenter), ẹniti o kọ alemo naa nitori iṣoro miiran pẹlu list_add_tail, ṣugbọn ko ṣe akiyesi pe itọkasi “chdev” le ni ominira ni iṣẹ put_device, eyiti o lo ni isalẹ ninu ipe naa. dev_err (& chdev -> dev ..). Sibẹsibẹ, alemo ko gba, botilẹjẹpe fun awọn idi ti ko ni ibatan si ailagbara naa. ti o ba ti (ret <0) {+ put_device (& chdev-> dev); dev_err (& chdev-> dev, DRV_NAME ": kfifo_alloc kuna \ n"); ret = -ENOMEM; goto err_fifo;
Patch kẹta ko tun gba nipasẹ olutọju (Miquel Raynal) nitori kokoro miiran ti ko ni ibatan si ailagbara (ipe ilọpo meji lati fi fun pdev). ti (!window->virt) {printk(KERN_ERR MOD_NAME): ioremap(%08lx, %08lx) kuna\n", window->phys, window->iwọn); + pci_dev_put (pdev); jade; } ... ti (! maapu) { printk (KERN_ERR MOD_NAME ": kmalloc kuna"); + pci_dev_put (pdev); jade; } memset (maapu, 0, iwọn (* maapu)); ... ti (mtd_device_register (map-> mtd, NULL, 0)) {map_destroy (map-> mtd); map-> mtd = NULL; + pci_dev_put (pdev); jade; }
O yanilenu, 4 ninu awọn abulẹ 5 ni akọkọ ti ro pe o ni awọn iṣoro, ṣugbọn awọn oluwadi tikararẹ ṣe aṣiṣe kan ati ninu ọkan alemo ti o jẹ iṣoro, ninu ero wọn, a ṣe iṣeduro atunṣe ti o tọ, laisi awọn ipo ti a ti ṣe yẹ fun lilo iranti lẹhin ti o nwaye. err = pci_request_mem_regions (pdev, nitrox_driver_name); ti o ba jẹ (aṣiṣe) {pci_disable_device (pdev); + dev_err (&pdev-> dev, “Kuna lati beere awọn agbegbe mem!\n”); pada aṣiṣe; }
orisun: opennet.ru
