FAILED: patch "[PATCH] ext4: force revalidation of directory pointer after" failed to apply to 4.4-stable tree
Subsystems (2)
[email protected]
maintainerThe patch below does not apply to the 4.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
Quoted 1 line
From
e40ff213898502d299351cc2fe1e350cd186f0d3Mon Sep 17 00:00:00 2001
From: Theodore Ts'o <[email protected]>
Date: Sun, 1 Apr 2018 23:21:03 -0400
Subject: [PATCH] ext4: force revalidation of directory pointer after
seekdir(2)
A malicious user could force the directory pointer to be in an invalid spot by using seekdir(2). Use the mechanism we already have to notice if the directory has changed since the last time we called ext4_readdir() to force a revalidation of the pointer.
fs/ext4/dir.c +5 -3
@@ -365,13 +365,15 @@ static loff_t ext4_dir_llseek(struct file *file, loff_t offset, int whence) {struct inode *inode = file->f_mapping->host;int dx_dir =is_dx_dir (inode); -loff_t htree_max =ext4_get_htree_eof (file); +loff_t ret, htree_max =ext4_get_htree_eof (file);if (likely (dx_dir)) -return generic_file_llseek_size (file, offset, whence, + ret =generic_file_llseek_size (file, offset, whence, htree_max, htree_max);else -return ext4_llseek (file, offset, whence); + ret =ext4_llseek (file, offset, whence); + file->f_version =inode_peek_iversion (inode) -1 ; +return ret; }/*