Ib pab neeg los ntawm University of Minnesota tau tshaj tawm cov ntsiab lus hais txog cov kev hloov tsis zoo uas tau xa mus.

Ua raws li tsab ntawv qhib kev thov txim, ib pawg ntawm cov kws tshawb fawb los ntawm University of Minnesota, uas nws lees txais kev hloov pauv rau Linux ntsiav raug thaiv los ntawm Greg Croah-Hartman, tau nthuav tawm cov ncauj lus kom ntxaws txog thaj ua rau thaj xa mus rau cov neeg tsim khoom thiab sau ntawv nrog cov neeg saib xyuas. muaj feem xyuam rau cov thaj ua rau thaj no.

Nws yog ib qho tseem ceeb tias tag nrho cov teeb meem thaj ua rau thaj tau raug tsis lees paub ntawm qhov pib ntawm cov neeg saib xyuas; tsis yog ib qho kev pom zoo. Qhov tseeb no ua rau nws paub meej tias yog vim li cas Greg Croah-Hartman tau ua hnyav heev, vim nws tsis paub meej tias cov kws tshawb fawb yuav ua li cas yog tias thaj chaw tau pom zoo los ntawm cov neeg saib xyuas. Hauv kev pom tom qab, lawv tau thov tias lawv npaj siab tshaj tawm cov kab laum thiab yuav tsis tso cai rau thaj tsam mus rau Git, tab sis nws tsis paub meej tias lawv yuav ua li cas thiab lawv yuav mus deb npaum li cas.

Tag nrho nyob rau lub Yim Hli 2020 los ntawm qhov chaw nyob tsis qhia npe [email tiv thaiv] ΠΈ [email tiv thaiv] (Tsab ntawv los ntawm James Bond) tsib thaj ua rau raug xa mus: ob qhov tseeb (1, 2) thiab peb muaj qhov yuam kev zais (1, 2, 3), tsim cov xwm txheej rau qhov tsis zoo. Txhua thaj tsuas muaj 1-4 kab ntawm cov cai. Lub tswv yim tseem ceeb tom qab qhov kev ua yuam kev tsis raug yog tias kho lub cim xeeb xau tuaj yeem tsim kom muaj qhov tsis zoo ob npaug. Ib lub lim tiam tom qab, cov ntaub ntawv raug xa mus rau kernel developers nrog ib lub tswv yim los tham txog qhov muaj peev xwm los txhawb qhov muaj peev xwm nyob rau hauv lub guise ntawm tsis tseem ceeb fixes rau lub cim xeeb leaks, tab sis tsis muaj dab tsi tau hais txog yav dhau los sim xa cov pa phem phem.

Thawj qhov teeb meem kho lub cim xeeb los ntawm kev ntxiv hu rau kfree() ua ntej rov qab tswj thaum muaj kev ua yuam kev, tab sis tsim cov xwm txheej rau kev nkag mus rau thaj chaw nco tom qab nws tau tso tawm (siv-tom qab-dawb). Lub thaj no tau tsis lees paub los ntawm tus saib xyuas (Jiri Slaby), uas tau txheeb xyuas qhov teeb meem thiab taw qhia tias ib xyoos dhau los ib tus neeg tau sim tawm tswv yim hloov pauv zoo sib xws thiab nws tau pib lees txais, tab sis tom qab ntawd muab pov tseg tom qab txheeb xyuas cov xwm txheej rau qhov tsis zoo. > p2 = p1[n] = kmalloc_array(64, sizeof(u16), GFP_KERNEL); > - yog (!p2) rov -ENOMEM; > + yog (!p2) {> + kfree(p1); > + rov -ENOMEM; > + }

Qhov thib ob thaj kuj muaj cov xwm txheej rau kev siv-tom qab-dawb teeb meem. Cov ntaub ntawv teev tseg tsis tau txais los ntawm tus neeg saib xyuas (Dan Carpenter), uas tsis lees paub lub thaj vim muaj lwm qhov teeb meem nrog list_add_tail, tab sis tsis tau pom tias tus pointer "chdev" tuaj yeem raug tso tawm hauv qhov kev ua haujlwm put_device, uas yog siv hauv qab no hauv kev hu. dev_err(&chdev -> dev..). Txawm li cas los xij, thaj chaw tsis raug lees txais, txawm tias yog vim li cas tsis cuam tshuam nrog qhov tsis zoo. if (ret < 0) { + put_device(&chdev->dev); dev_err(&chdev->dev, DRV_NAME ": kfifo_alloc ua tsis tau tejyam\n"); ret = -ENOMEM; mus err_fifo;

Qhov thib peb thaj kuj tseem tsis tau txais los ntawm tus neeg saib xyuas (Miquel Raynal) vim muaj lwm cov kab mob tsis cuam tshuam txog qhov tsis zoo (ob npaug hu rau pdev). if (!window->virt) { printk(KERN_ERR MOD_NAME ": ioremap(%08lx, %08lx) ua tsis tiav\n", window->phys, window->size); + pci_dev_put(pdev); tawm mus; } ... yog (!map) { printk(KERN_ERR MOD_NAME ": kmalloc ua tsis tiav"); + pci_dev_put(pdev); tawm mus; } memset(map, 0, sizeof(*map)); ... yog (mtd_device_register(map->mtd, NULL, 0)) { map_destroy(map->mtd); map->mtd = NULL; + pci_dev_put(pdev); tawm mus; }

Interestingly, 4 tawm ntawm 5 thaj ua rau thaj yog thawj zaug xav tias muaj teeb meem, tab sis cov kws tshawb fawb lawv tus kheej tau ua yuam kev thiab hauv ib thaj chaw uas muaj teeb meem, hauv lawv lub tswv yim, kev kho kom raug, tsis muaj cov kev cia siab rau kev siv nco tom qab tshwm sim dawb. err = pci_request_mem_regions(pdev, nitrox_driver_name); if (err) { pci_disable_device(pdev); + dev_err(&pdev->dev, "Kev thov tsis ua tiav thaj tsam me!\n"); rov qab yuam kev; }

Tau qhov twg los: opennet.ru

Ntxiv ib saib