Messages in this thread Patch in this message |  | | From | Cengiz Can <> | Subject | [PATCH] fs: pstore: fix double-free on ramoops_init_przs | Date | Tue, 7 Jan 2020 14:04:46 +0300 |
| |
According to Coverity scanner (CID 1457526) kfree on ram.c:591 frees label which has already been freed.
Here's the flow as I have understood (this is my first time reading pstore's files):
Whenever `persistent_ram_new` fails, it implicitly calls `persistent_ram_free(prz)` which already does `kfree(prz->label)` and a `kfree(prz)` consequently.
Removed `kfree(label)` to prevent double-free.
Signed-off-by: Cengiz Can <cengiz@kernel.wtf> --- fs/pstore/ram.c | 1 - 1 file changed, 1 deletion(-)
diff --git a/fs/pstore/ram.c b/fs/pstore/ram.c index 487ee39b4..e196aa08f 100644 --- a/fs/pstore/ram.c +++ b/fs/pstore/ram.c @@ -588,7 +588,6 @@ static int ramoops_init_przs(const char *name, dev_err(dev, "failed to request %s mem region (0x%zx@0x%llx): %d\n", name, record_size, (unsigned long long)*paddr, err); - kfree(label); while (i > 0) { i--; -- 2.24.1
|  |