Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'pstore-v5.5-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux

Pull pstore fix from Kees Cook:
"Cengiz Can forwarded a Coverity report about more problems with a rare
pstore initialization error path, so the allocation lifetime was
rearranged to avoid needing to share the kfree() responsibilities
between caller and callee"

* tag 'pstore-v5.5-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
pstore/ram: Regularize prz label allocation lifetime

+3 -3
+2 -2
fs/pstore/ram.c
··· 583 583 prz_ar[i] = persistent_ram_new(*paddr, zone_sz, sig, 584 584 &cxt->ecc_info, 585 585 cxt->memtype, flags, label); 586 + kfree(label); 586 587 if (IS_ERR(prz_ar[i])) { 587 588 err = PTR_ERR(prz_ar[i]); 588 589 dev_err(dev, "failed to request %s mem region (0x%zx@0x%llx): %d\n", 589 590 name, record_size, 590 591 (unsigned long long)*paddr, err); 591 - kfree(label); 592 592 593 593 while (i > 0) { 594 594 i--; ··· 629 629 label = kasprintf(GFP_KERNEL, "ramoops:%s", name); 630 630 *prz = persistent_ram_new(*paddr, sz, sig, &cxt->ecc_info, 631 631 cxt->memtype, PRZ_FLAG_ZAP_OLD, label); 632 + kfree(label); 632 633 if (IS_ERR(*prz)) { 633 634 int err = PTR_ERR(*prz); 634 635 635 636 dev_err(dev, "failed to request %s mem region (0x%zx@0x%llx): %d\n", 636 637 name, sz, (unsigned long long)*paddr, err); 637 - kfree(label); 638 638 return err; 639 639 } 640 640
+1 -1
fs/pstore/ram_core.c
··· 574 574 /* Initialize general buffer state. */ 575 575 raw_spin_lock_init(&prz->buffer_lock); 576 576 prz->flags = flags; 577 - prz->label = label; 577 + prz->label = kstrdup(label, GFP_KERNEL); 578 578 579 579 ret = persistent_ram_buffer_map(start, size, prz, memtype); 580 580 if (ret)