diff options
author | graysky | 2020-12-02 13:13:56 -0500 |
---|---|---|
committer | graysky | 2020-12-02 13:13:56 -0500 |
commit | 1be9abf14c83a72e2ae3c0b195b587a39cd6567c (patch) | |
tree | 6a65e4123ad39ef0acbb782c2cfc874088d37438 /0004-efivarfs-revert-fix-memory-leak-in-efivarfs_create.patch | |
parent | 89b78511230d555e6cad1cfc58567d11a0685f1e (diff) | |
download | aur-1be9abf14c83a72e2ae3c0b195b587a39cd6567c.tar.gz |
Update to 5.9.12-2
Diffstat (limited to '0004-efivarfs-revert-fix-memory-leak-in-efivarfs_create.patch')
-rw-r--r-- | 0004-efivarfs-revert-fix-memory-leak-in-efivarfs_create.patch | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/0004-efivarfs-revert-fix-memory-leak-in-efivarfs_create.patch b/0004-efivarfs-revert-fix-memory-leak-in-efivarfs_create.patch deleted file mode 100644 index 779cbb00a60c..000000000000 --- a/0004-efivarfs-revert-fix-memory-leak-in-efivarfs_create.patch +++ /dev/null @@ -1,58 +0,0 @@ -From a163474e9b86c2c25f20733385d8b1d6de492a7f Mon Sep 17 00:00:00 2001 -From: Ard Biesheuvel <ardb@kernel.org> -Date: Wed, 25 Nov 2020 08:45:55 +0100 -Subject: [PATCH 4/5] efivarfs: revert "fix memory leak in efivarfs_create()" - -The memory leak addressed by commit fe5186cf12e3 is a false positive: -all allocations are recorded in a linked list, and freed when the -filesystem is unmounted. This leads to double frees, and as reported -by David, leads to crashes if SLUB is configured to self destruct when -double frees occur. - -So drop the redundant kfree() again, and instead, mark the offending -pointer variable so the allocation is ignored by kmemleak. - -Cc: Vamshi K Sthambamkadi <vamshi.k.sthambamkadi@gmail.com> -Fixes: fe5186cf12e3 ("efivarfs: fix memory leak in efivarfs_create()") -Reported-by: David Laight <David.Laight@aculab.com> -Signed-off-by: Ard Biesheuvel <ardb@kernel.org> ---- - fs/efivarfs/inode.c | 2 ++ - fs/efivarfs/super.c | 1 - - 2 files changed, 2 insertions(+), 1 deletion(-) - -diff --git a/fs/efivarfs/inode.c b/fs/efivarfs/inode.c -index 96c0c86f3fff..0297ad95eb5c 100644 ---- a/fs/efivarfs/inode.c -+++ b/fs/efivarfs/inode.c -@@ -7,6 +7,7 @@ - #include <linux/efi.h> - #include <linux/fs.h> - #include <linux/ctype.h> -+#include <linux/kmemleak.h> - #include <linux/slab.h> - #include <linux/uuid.h> - -@@ -103,6 +104,7 @@ static int efivarfs_create(struct inode *dir, struct dentry *dentry, - var->var.VariableName[i] = '\0'; - - inode->i_private = var; -+ kmemleak_ignore(var); - - err = efivar_entry_add(var, &efivarfs_list); - if (err) -diff --git a/fs/efivarfs/super.c b/fs/efivarfs/super.c -index f943fd0b0699..15880a68faad 100644 ---- a/fs/efivarfs/super.c -+++ b/fs/efivarfs/super.c -@@ -21,7 +21,6 @@ LIST_HEAD(efivarfs_list); - static void efivarfs_evict_inode(struct inode *inode) - { - clear_inode(inode); -- kfree(inode->i_private); - } - - static const struct super_operations efivarfs_ops = { --- -2.29.2 - |