Gulu lochokera ku yunivesite ya Minnesota lawulula zambiri zakusintha koyipa komwe kudatumizidwa.

Kutsatira kalata yotseguka yopepesa, gulu la ofufuza ochokera ku yunivesite ya Minnesota, omwe kuvomereza kusintha kwa Linux kernel kudatsekedwa ndi Greg Croah-Hartman, adawulula mwatsatanetsatane za zigamba zomwe zidatumizidwa kwa opanga kernel komanso makalata omwe amawathandizira. zotsutsana ndi izi.

Ndizofunikira kudziwa kuti zigamba zonse zomwe zinali zovuta zidakanidwa panthawi ya osamalira; palibe chigamba chimodzi chomwe chidavomerezedwa. Izi zikuwonetsa chifukwa chake Greg Croah-Hartman adachita zinthu mwankhanza kwambiri, popeza sizikudziwika bwino zomwe ofufuzawo akanachita ngati zigambazo zikanavomerezedwa ndi oyang'anira. Poyang'ana m'mbuyo, adanena kuti akufuna kunena za kachilomboka ndipo sakanalola kuti zigambazo zipite ku Git, koma sizikudziwika kuti akadachita chiyani komanso kuti akanatha bwanji.

Zonse mu Ogasiti 2020 kuchokera pama adilesi osadziwika [imelo ndiotetezedwa] ΠΈ [imelo ndiotetezedwa] (kalata yochokera kwa James Bond) zigamba zisanu zidatumizidwa: ziwiri zolondola (1, 2) ndi zitatu zokhala ndi zolakwika zobisika (1, 2, 3), zomwe zimapangitsa kuti pakhale zovuta. Chigamba chilichonse chinali ndi mizere 1-4 yokha ya ma code. Lingaliro lalikulu kumbuyo kwa zigamba zolakwika linali loti kukonza kutayikira kwa kukumbukira kumatha kupanga chiwopsezo chaulere kawiri. Patatha sabata imodzi, zidziwitso zidatumizidwa kwa opanga kernel ndi lingaliro loti akambirane za kuthekera kolimbikitsa zofooka poganiza zokonza pang'onopang'ono pakuwonongeka kwa kukumbukira, koma palibe chomwe chidanenedwa poyesa kale kutumiza zigamba zoyipa.

Chigawo choyamba chovuta chinakhazikitsa kutayikira kwa kukumbukira powonjezera kuyimba ku kfree() musanabweze kuwongolera ngati pachitika cholakwika, koma zidapanga malo ofikira malo okumbukira atamasulidwa (kugwiritsa ntchito-mufulu). Chigambachi chinakanidwa ndi wosamalira (Jiri Slaby), yemwe adazindikira vutoli ndipo adanena kuti chaka chapitacho wina adayesa kale kufotokozera kusintha komweku ndipo adavomerezedwa poyamba, koma adatayidwa atatha kuzindikira zomwe zili pachiopsezo. > p2 = p1[n] = kmalloc_array(64, sizeof(u16), GFP_KERNEL); > - ngati (!p2) kubwerera -ENOMEM; > + ngati (!p2) { > + kfree(p1); > + kubwerera -ENOMEM; > +}

Chigamba chachiwiri chinalinso ndi zofunikira pavuto laulere. Chigamba chomwe chatchulidwacho sichinavomerezedwe ndi wosamalira (Dan Carpenter), yemwe anakana chigambacho chifukwa cha vuto lina ndi list_add_tail, koma sanazindikire kuti cholozera cha "chdev" chikhoza kumasulidwa mu put_device ntchito, yomwe imagwiritsidwa ntchito pansipa. dev_err(&chdev ->dev..). Komabe, chigambacho sichinavomerezedwe, ngakhale pazifukwa zosagwirizana ndi chiwopsezocho. ngati (ret <0) {+ put_device(&chdev->dev); dev_err(&chdev->dev, DRV_NAME ": kfifo_alloc yalephera\n"); ret = -ENOMEM; goto err_fifo;

Chigamba chachitatu sichinavomerezedwenso ndi woyang'anira (Miquel Raynal) chifukwa cha cholakwika china chosagwirizana ndi chiwopsezocho (kuyimba kawiri kuti muyike pdev). ngati (!windo-> virt) { printk(KERN_ERR MOD_NAME ": ioremap(%08lx, %08lx) yalephera\n), window->phys, window->size); + pci_dev_put(pdev); kutuluka; } ... ngati (!mapu) { printk(KERN_ERR MOD_NAME ": kmalloc yalephera"); + pci_dev_put(pdev); kutuluka; } memset(mapu, 0, sizeof(*map)); ... ngati (mtd_device_register(map->mtd, NULL, 0)) {map_destroy(map->mtd); map->mtd = NULL; + pci_dev_put(pdev); kutuluka; }

Chochititsa chidwi n'chakuti, 4 mwa ma 5 patches poyamba ankaganiza kuti ali ndi mavuto, koma ochita kafukufukuwo adalakwitsa ndipo mu gawo limodzi lomwe linali lovuta, m'malingaliro awo, kukonza koyenera kunaperekedwa, popanda mikhalidwe yoyembekezeka yogwiritsira ntchito kukumbukira pambuyo pochitika kwaulere. zolakwika = pci_request_mem_regions(pdev, nitrox_driver_name); ngati (zolakwika) {pci_disable_device(pdev); + dev_err(&pdev->dev, β€œMwalephera kupempha zigawo za mem!\n”); kubwerera kulakwitsa; }

Source: opennet.ru

Kuwonjezera ndemanga