Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2049d766 authored by Miklos Szeredi's avatar Miklos Szeredi Committed by laxman
Browse files

[CVE-2020-16120] ovl: do not fail because of O_NOATIME

Change-Id: Ib1a0d97073e3d147ad5f0deb772389787da51226
parent 57f5ee92
Loading
Loading
Loading
Loading
+3 −9
Original line number Diff line number Diff line
@@ -41,9 +41,10 @@ static struct file *ovl_open_realfile(const struct file *file,
	err = inode_permission(realinode, MAY_OPEN | acc_mode);
	if (err) {
		realfile = ERR_PTR(err);
	} else if (!inode_owner_or_capable(realinode)) {
		realfile = ERR_PTR(-EPERM);
	} else {
		if (!inode_owner_or_capable(realinode))
			flags &= ~O_NOATIME;

		realfile = open_with_fake_path(&file->f_path, flags, realinode,
					       current_cred());
	}
@@ -63,13 +64,6 @@ static int ovl_change_flags(struct file *file, unsigned int flags)
	struct inode *inode = file_inode(file);
	int err;

	/* No atime modificaton on underlying */
	flags |= O_NOATIME | FMODE_NONOTIFY;

	/* If some flag changed that cannot be changed then something's amiss */
	if (WARN_ON((file->f_flags ^ flags) & ~OVL_SETFL_MASK))
		return -EIO;

	flags &= OVL_SETFL_MASK;

	if (((flags ^ file->f_flags) & O_APPEND) && IS_APPEND(inode))