commit: 60293a910e90a700cbdec50edb4b2fcb6dc7c13a Author: Arisu Tachibana <alicef <AT> gentoo <DOT> org> AuthorDate: Wed Sep 10 06:58:53 2025 +0000 Commit: Arisu Tachibana <alicef <AT> gentoo <DOT> org> CommitDate: Wed Sep 10 06:58:53 2025 +0000 URL: https://gitweb.gentoo.org/proj/linux-patches.git/commit/?id=60293a91
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 db45e6ad..6f7be368 100644 --- a/0000_README +++ b/0000_README @@ -475,6 +475,10 @@ Patch: 1730_parisc-Disable-prctl.patch From: https://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux.git Desc: prctl: Temporarily disable prctl(PR_SET_MDWE) on parisc +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: 1900_btrfs-dev-mapper-name-soft-link-fix.patch From: https://lore.kernel.org/linux-btrfs/30aefd8b4e8c1f0c5051630b106a1ff3570d28ed.1735537399.git....@suse.com/T/#u Desc: btrfs: prefer to use "/dev/mapper/name" soft link instead of "/dev/dm-*" 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 + +
