เบซเบผเบฑเบเบเบฒเบเบเบปเบเปเบฒเบเปเบเบตเบเบเปเบฝเบงเบเบฑเบเบเบฒเบเบเปเปเบเบ, เบเบธเปเบกเบเบฑเบเบเบปเปเบเบเบงเปเบฒเบเบฒเบเบกเบฐเบซเบฒเบงเบดเบเบฐเบเบฒเปเบฅเบกเบดเบเบเบตเปเบเบเบฒเปเบเปเบเบญเบกเบฎเบฑเบเบเบฒเบเบเปเบฝเบเปเบเบเปเบเปเบเปเบ Linux เบเบตเปเปเบเปเบเบฅเบฑเบญเบเปเบงเป, เปเบเปเปเบเบตเบเปเบเบตเบเบเปเปเบกเบนเบเบฅเบฐเบญเบฝเบเบเปเบฝเบงเบเบฑเบเปเบเบฑเบเบเปเบเบตเปเบชเบปเปเบเปเบเบซเบฒเบเบฑเบเบเบฑเบเบเบฐเบเบฒเปเบเบตเปเบเบฅ เปเบฅเบฐ เบเบฒเบเบเบดเบเบเปเปเบชเบทเปเบชเบฒเบเบเบฑเบเบเบนเปเบฎเบฑเบเบชเบฒเบเบตเปเบเปเบฝเบงเบเปเบญเบเบเบฑเบเปเบเบฑเบเบเปเปเบซเบผเบปเปเบฒเบเบตเป.
เปเบเบฑเบเบเบตเปเบชเบฑเบเปเบเบเบงเปเบฒเบเบธเบเปเบเปเบเบเบตเปเบกเบตเบเบฑเบเบซเบฒเบเบทเบเบเบฐเบเบดเปเบชเบเบเบฒเบเบเบฒเบเบฅเบดเปเบฅเบตเปเบกเบเบญเบเบเบนเปเบฎเบฑเบเบชเบฒ; เบเบงเบฒเบกเบเบดเบเบเบตเปเปเบฎเบฑเบเปเบซเปเบกเบฑเบเบเบฑเบเปเบเบเบงเปเบฒเปเบเบฑเบเบซเบเบฑเบ Greg Croah-Hartman เบเบฐเบเบดเบเบฑเบเบขเปเบฒเบเปเบซเบเบฎเปเบฒเบ, เปเบเบฒเบฐเบงเปเบฒเบกเบฑเบเบเปเปเบเบฑเบเปเบเบเบงเปเบฒเบเบฑเบเบเบปเปเบเบเบงเปเบฒเบเบฐเปเบฎเบฑเบเปเบเบงเปเบเบเปเบฒเปเบเปเบเบเบฑเปเบเบเปเบฒเบงเปเบเปเบฎเบฑเบเบเบฒเบเบญเบฐเบเบธเบกเบฑเบเบเบฒเบเบเบนเปเบฎเบฑเบเบชเบฒ. เปเบเบเบฒเบเบซเบฅเบฑเบ, เบเบงเบเปเบเบปเบฒเบญเปเบฒเบเบงเปเบฒเบเบงเบเปเบเบปเบฒเบเบฑเปเบเปเบเบเบตเปเบเบฐเบฅเบฒเบเบเบฒเบเบเปเปเบเบดเบเบเบฒเบเปเบฅเบฐเบเบฐเบเปเปเบญเบฐเบเบธเบเบฒเบเปเบซเป patches เปเบเบซเบฒ Git, เปเบเปเบกเบฑเบเบเปเปเบเบฑเบเปเบเบเบงเปเบฒเบเบงเบเปเบเบปเบฒเบเบฐเปเบฎเบฑเบเบซเบเบฑเบเปเบฅเบฐเบเบงเบเปเบเบปเบฒเปเบเปเบเบเบฒเบเปเบ.
เบฅเบงเบกเบเบฑเบเปเบปเบ, เปเบเปเบเบทเบญเบเบชเบดเบเบซเบฒ 2020, เบเบฒเบเบเบตเปเบขเบนเป acostag เบเบตเปเบเปเปเบฅเบฐเบเบธเบเบทเป.ubuntuเปเบเปเบกเบตเบเบฒเบเบชเบปเปเบเปเบเบฑเบเบเปเบซเปเบฒเบญเบฑเบเปเบเบเบตเป @gmail.com เปเบฅเบฐ jameslouisebond@gmail.com (เบญเบตเปเบกเบงเบเบฑเปเบเบเปเบฒเบงเปเบกเปเบเบกเบฒเบเบฒเบ James Bond): เบชเบญเบเบญเบฑเบเบเบตเปเบเบทเบเบเปเบญเบ (1, 2) เปเบฅเบฐ เบชเบฒเบกเบญเบฑเบเบเบตเปเบเบฐเบเบญเบเบกเบตเบเปเปเบเบดเบเบเบฒเบเบเบตเปเปเบเบทเปเบญเบเปเบงเป (1, 2, 3) เบเบตเปเบชเปเบฒเบเปเบเบทเปเบญเบเปเบเบชเบณเบฅเบฑเบเบเปเบญเบเปเบซเบงเป. เปเบเปเบฅเบฐเปเบเบฑเบเบเปเบกเบตเบเบฝเบเปเบเป 1-4 เปเบเบงเบเบญเบเบฅเบฐเบซเบฑเบเปเบเบปเปเบฒเบเบฑเปเบ. เปเบเบงเบเบงเบฒเบกเบเบดเบเบเบทเปเบเบเบฒเบเบเบตเปเบขเบนเปเปเบเบทเปเบญเบเบซเบผเบฑเบเปเบเบฑเบเบเปเบเบตเปเบเบดเบเบเบฒเบเปเบกเปเบเบงเปเบฒเบเบฒเบเปเบเปเปเบเบเบฒเบเบฎเบปเปเบงเปเบซเบผเบเบญเบเปเปเบงเบเบเบงเบฒเบกเบเบณเบชเบฒเบกเบฒเบเบชเปเบฒเบเบเปเบญเบเปเบซเบงเปเปเบเปเปเบเบทเปเบญเบเบเบฒเบ double-free. เปเบถเปเบเบญเบฒเบเบดเบเบเปเปเบกเบฒ, เบเบฑเบเบเบฑเบเบเบฐเบเบฒ kernel เปเบเปเบเบทเบเบเบดเบเบเปเปเปเบเบทเปเบญเบเบถเบเบชเบฒเบซเบฒเบฅเบทเบเปเบฝเบงเบเบฑเบเบเบงเบฒเบกเปเบเบฑเบเปเบเปเบเปเบเบญเบเบเบฒเบเบชเบปเปเบเปเบชเบตเบกเบเปเบญเบเปเบซเบงเปเบเบฒเบเปเบเปเบเบฒเบเบเบญเบกเปเบเบเบเบญเบเบเบฒเบเปเบเปเปเบเบเบฒเบเบฎเบปเปเบงเปเบซเบผเบเบญเบเปเปเบงเบเบเบงเบฒเบกเบเบณเบเบตเปเบเปเปเบชเบณเบเบฑเบ, เปเบเปเบเปเปเบกเบตเบซเบเบฑเบเบเบทเบเบเปเบฒเบงเปเบเบดเบเบเปเบฝเบงเบเบฑเบเบเบงเบฒเบกเบเบฐเบเบฒเบเบฒเบกเบเปเบญเบเปเปเบฒเบเบตเปเบเบตเปเบเบฐเบชเบปเปเบเปเบเบฑเบเบเปเบเบตเปเปเบเบฑเบเบญเบฑเบเบเบฐเบฅเบฒเบ.
patch เบเปเบฒเบญเบดเบเบเบตเปเบกเบตเบเบฑเบเบซเบฒเปเบเปเปเบเปเปเบเบเบฒเบเบฎเบปเปเบงเปเบซเบฅเบเบญเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเปเบเบเบเบฒเบเปเบเบตเปเบกเบเบฒเบเปเบเปเบเบซเบฒ kfree() เบเปเบญเบเบเบตเปเบเบฐเบเบฑเบเบเบทเบเบเบฒเบเบเบงเบเบเบธเบกเปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเบงเบฒเบกเบเบดเบเบเบฒเบ, เปเบเปเปเบเปเบชเปเบฒเบเปเบเบทเปเบญเบเปเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบทเปเบเบเบตเปเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเบซเบผเบฑเบเบเบฒเบเบเบตเปเบกเบฑเบเปเบเปเบเบทเบเบเบปเบเบเปเบญเบ (เบเบฒเบเบเปเบฒเปเบเปเบซเบผเบฑเบเบเบฒเบเบเบฃเบต). patch เบเบตเปเปเบเปเบเบทเบเบเบฐเบเบดเปเบชเบเปเบเบเบเบนเปเบฎเบฑเบเบชเบฒ (Jiri Slaby), เบเบนเปเบเบตเปเบเปเบฒเบเบปเบเบเบฑเบเบซเบฒเปเบฅเบฐเบเบตเปเปเบซเปเปเบซเบฑเบเบงเปเบฒเบซเบเบถเปเบเบเบตเบเปเบญเบเบซเบเปเบฒเบเบตเปเบกเบตเบเบปเบเบเบฐเบเบฒเบเบฒเบกเบชเบฐเปเบซเบเบตเบเบฒเบเบเปเบฝเบเปเบเบเบเบตเปเบเปเบฒเบเบเบทเบเบฑเบเปเบฅเบฐเบกเบฑเบเปเบเปเบฎเบฑเบเบเบฒเบเบเบญเบกเบฎเบฑเบเปเบเปเบเบทเปเบญเบเบเบปเปเบ, เปเบเปเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบทเบเบเบปเบเปเบฅเบตเบเบซเบผเบฑเบเบเบฒเบเบเปเบฒเบเบปเบเปเบเบทเปเบญเบเปเบเบชเปเบฒเบฅเบฑเบเบเบงเบฒเบกเบญเปเบญเบเปเบญ. > p2 = p1[n] = kmalloc_array(64, sizeof(u16), GFP_KERNEL); > - เบเปเบฒ (!p2) เบเบฑเบเบเบทเบ -ENOMEM; > + เบเปเบฒ (!p2) { > + kfree(p1); > + เบเบฑเบเบเบทเบ -ENOMEM; > + }
เปเบเปเบเบฎเบญเบเบเบตเบชเบญเบเบเบฑเบเบกเบตเปเบเบทเปเบญเบเปเบเบชเปเบฒเบฅเบฑเบเบเบฑเบเบซเบฒเบเบฒเบเบเปเบฒเปเบเปเบซเบผเบฑเบเบเบฒเบเบเปเปเบกเบต. patch เบเบตเปเบฅเบฐเบเบธเบเปเปเปเบเปเบเบทเบเบเบญเบกเบฎเบฑเบเปเบเบเบเบนเปเบฎเบฑเบเบชเบฒ (Dan Carpenter), เบเบนเปเบเบตเปเบเบฐเบเบดเปเบชเบ patch เปเบเบทเปเบญเบเบเบฒเบเบเบฑเบเบซเบฒเบญเบทเปเบเบเบฑเบ list_add_tail, เปเบเปเบเปเปเปเบเปเบชเบฑเบเปเบเบเปเบซเบฑเบเบงเปเบฒเบเบปเบงเบเบตเป "chdev" เบชเบฒเบกเบฒเบเบเบทเบเบเบปเบเบเปเบญเบเปเบเบเบฑเบเบเบฑเบ put_device, เปเบเบดเปเบเบเบทเบเบเปเบฒเปเบเปเบเปเบฒเบเบฅเบธเปเบกเบเบตเปเปเบเบเบฒเบเปเบ. dev_err(&chdev -> dev..). เบขเปเบฒเบเปเบเบเปเบเบฒเบก, patch เบเปเปเปเบเปเบฎเบฑเบเบเบฒเบเบเบญเบกเบฎเบฑเบ, เปเบเบดเบเปเบกเปเบเบงเปเบฒเบชเปเบฒเบฅเบฑเบเปเบซเบเบเบปเบเบเบตเปเบเปเปเบเปเบฝเบงเบเปเบญเบเบเบฑเบเบเบงเบฒเบกเบญเปเบญเบเปเบญ. เบเปเบฒ (ret < 0) { + put_device(&chdev->dev); dev_err(&chdev->dev, DRV_NAME ": kfifo_alloc เบฅเบปเปเบกเปเบซเบฅเบง\n"); ret = -ENOMEM; goto err_fifo;
patch เบเบตเบชเบฒเบกเบเบฑเบเบเปเปเปเบเปเบฎเบฑเบเบเบฒเบเบเบญเบกเบฎเบฑเบเปเบเบเบเบนเปเบฎเบฑเบเบชเบฒ (Miquel Raynal) เปเบเบทเปเบญเบเบเบฒเบ bug เบญเบทเปเบเบเบตเปเบเปเปเบเปเบฝเบงเบเปเบญเบเบเบฑเบเบเปเบญเบเปเบซเบงเป (เปเบเบซเบฒเบชเบญเบเบเบฑเปเบเปเบเบทเปเบญเปเบญเบปเบฒ pdev). เบเปเบฒ (!window->virt) { printk(KERN_ERR MOD_NAME ": ioremap(%08lx, %08lx) เบฅเบปเปเบกเปเบซเบฅเบง\n", window->phys, window->size); + pci_dev_put(pdev); goto เบญเบญเบ; } ... เบเปเบฒ (!map) { printk(KERN_ERR MOD_NAME ": kmalloc เบฅเบปเปเบกเปเบซเบฅเบง"); + pci_dev_put(pdev); goto เบญเบญเบ; } memset(map, 0, sizeof(*map)); ... เบเปเบฒ (mtd_device_register(map->mtd, NULL, 0)) { map_destroy(map->mtd); map->mtd = NULL; + pci_dev_put(pdev); goto เบญเบญเบ; }
เบซเบเปเบฒเบชเบปเบเปเบ, 4 เบญเบญเบเบเบฒเบ 5 patches เปเบเปเบเบทเปเบญเบเบเบปเปเบเบชเบปเบกเบกเบธเบเบงเปเบฒเบกเบตเบเบฑเบเบซเบฒ, เปเบเปเบเบฑเบเบเบปเปเบเบเบงเปเบฒเปเบญเบเปเบเปเปเบฎเบฑเบเบเบดเบเบเบฒเบเปเบฅเบฐเปเบเบซเบเบถเปเบ patch เบเบตเปเปเบเบฑเบเบเบฑเบเบซเบฒ, เปเบเบเบงเบฒเบกเบเบดเบเปเบซเบฑเบเบเบญเบเปเบเบปเบฒเปเบเบปเปเบฒ, เบเบฒเบเปเบเปเปเบเบเบตเปเบเบทเบเบเปเบญเบเปเบเปเบเบทเบเบชเบฐเปเบซเบเบต, เปเบเบเบเปเปเบกเบตเปเบเบทเปเบญเบเปเบเบเบตเปเบเบฒเบเปเบงเปเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเบฒเปเบเปเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเบซเบผเบฑเบเบเบฒเบเปเบเบตเบเบเบถเปเบเบเบฃเบต. err = pci_request_mem_regions(pdev, nitrox_driver_name); เบเปเบฒ (err) { pci_disable_device(pdev); + dev_err(&pdev->dev, โเบฅเบปเปเบกเปเบซเบฅเบงเปเบเบเบฒเบเบฎเปเบญเบเบเปเบเบฒเบเบเบทเปเบ mem!\nโ); เบเบฑเบเบเบทเบเบเบงเบฒเบกเบเบดเบเบเบฒเบ; }
เปเบซเบผเปเบเบเปเปเบกเบนเบ: opennet.ru
