commit: 59f69be672470056d48c84c2dc4a1ebec7dfbad9 Author: Arisu Tachibana <alicef <AT> gentoo <DOT> org> AuthorDate: Fri Sep 5 12:45:29 2025 +0000 Commit: Arisu Tachibana <alicef <AT> gentoo <DOT> org> CommitDate: Fri Sep 5 12:45:29 2025 +0000 URL: https://gitweb.gentoo.org/proj/linux-patches.git/commit/?id=59f69be6
Add 1801_proc_fix_type_confusion_in_pde_set_flags.patch Signed-off-by: Arisu Tachibana <alicef <AT> gentoo.org> 0000_README | 4 +++ ..._proc_fix_type_confusion_in_pde_set_flags.patch | 40 ++++++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/0000_README b/0000_README index df581c25..1902d1c9 100644 --- a/0000_README +++ b/0000_README @@ -79,6 +79,10 @@ Patch: 1800_proc_fix_missing_pde_set_flags_for_net_proc_files.patch From: https://lore.kernel.org/all/[email protected]/ Desc: proc: fix missing pde_set_flags() for net proc files +Patch: 1801_proc_fix_type_confusion_in_pde_set_flags.patch +From: https://lore.kernel.org/linux-fsdevel/[email protected]/ +Desc: proc: fix type confusion in pde_set_flags() + Patch: 2000_BT-Check-key-sizes-only-if-Secure-Simple-Pairing-enabled.patch From: https://lore.kernel.org/linux-bluetooth/[email protected]/raw Desc: Bluetooth: Check key sizes only when Secure Simple Pairing is enabled. See bug #686758 diff --git a/1801_proc_fix_type_confusion_in_pde_set_flags.patch b/1801_proc_fix_type_confusion_in_pde_set_flags.patch new file mode 100644 index 00000000..4777dbdc --- /dev/null +++ b/1801_proc_fix_type_confusion_in_pde_set_flags.patch @@ -0,0 +1,40 @@ +Subject: [PATCH] proc: fix type confusion in pde_set_flags() + +Commit 2ce3d282bd50 ("proc: fix missing pde_set_flags() for net proc files") +missed a key part in the definition of proc_dir_entry: + +union { + const struct proc_ops *proc_ops; + const struct file_operations *proc_dir_ops; +}; + +So dereference of ->proc_ops assumes it is a proc_ops structure results in +type confusion and make NULL check for 'proc_ops' not work for proc dir. + +Add !S_ISDIR(dp->mode) test before calling pde_set_flags() to fix it. + +Fixes: 2ce3d282bd50 ("proc: fix missing pde_set_flags() for net proc files") +Reported-by: Brad Spengler <[email protected]> +Signed-off-by: wangzijie <[email protected]> +--- + fs/proc/generic.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/fs/proc/generic.c b/fs/proc/generic.c +index bd0c099cf..176281112 100644 +--- a/fs/proc/generic.c ++++ b/fs/proc/generic.c +@@ -393,7 +393,8 @@ struct proc_dir_entry *proc_register(struct proc_dir_entry *dir, + if (proc_alloc_inum(&dp->low_ino)) + goto out_free_entry; + +- pde_set_flags(dp); ++ if (!S_ISDIR(dp->mode)) ++ pde_set_flags(dp); + + write_lock(&proc_subdir_lock); + dp->parent = dir; +-- +2.25.1 + +
