projects/linux·commit 74cbb480

Merge tag 'pull-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs

74cbb480 · Linus Torvalds <[email protected]> · 2022-08-14 13:03:53 -07:00

Pull vfs lseek fix from Al Viro:
 "Fix proc_reg_llseek() breakage. Always had been possible if somebody
  left NULL ->proc_lseek, became a practical issue now"

* tag 'pull-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
  take care to handle NULL ->proc_lseek()
Commit
74cbb480d0efa61efa09e5ebd081a32e1d355bba
Parents
5d6a0f4d · 3f61631d

Merge commit. Changes below are compared with the first parent: 5d6a0f4d.

Changes

1 files changed · +3 −0

FileStatusAddDelContent
fs/proc/inode.cmodified+3−0View file

fs/proc/inode.c

View file
diff --git a/fs/proc/inode.c b/fs/proc/inode.c
index f130499..f495fdb 100644
--- a/fs/proc/inode.c
+++ b/fs/proc/inode.c
@@ -494,6 +494,9 @@ static int proc_reg_open(struct inode *inode, struct file *file)
typeof_member(struct proc_ops, proc_release) release;
struct pde_opener *pdeo;
+ if (!pde->proc_ops->proc_lseek)
+ file->f_mode &= ~FMODE_LSEEK;
+
if (pde_is_permanent(pde)) {
open = pde->proc_ops->proc_open;
if (open)