Hi,

I was asked if we can add this patch to our kernel in Fedora.

It's for ability to open a directory with execute permission but without read permission.

Michal

-------- Original Message --------

Michal, can you ask the Fedora Linux kernel people to backport this
patch, please (this is going to be needed by both ksh93 and KDE4)?

Josh

---------- Forwarded message ----------
From: Greg KH <[email protected]>
Date: Thu, Jul 12, 2012 at 7:51 PM
Subject: [ 42/68] vfs: make O_PATH file descriptors usable for fchdir()
To: [email protected], [email protected]
Cc: [email protected], [email protected],
[email protected], Al Viro <[email protected]>


3.0-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Linus Torvalds <[email protected]>

commit 332a2e1244bd08b9e3ecd378028513396a004a24 upstream.

We already use them for openat() and friends, but fchdir() also wants to
be able to use O_PATH file descriptors.  This should make it comparable
to the O_SEARCH of Solaris.  In particular, O_PATH allows you to access
(not-quite-open) a directory you don't have read persmission to, only
execute permission.

Noticed during development of multithread support for ksh93.

Reported-by: ольга крыжановская <[email protected]>
Cc: Al Viro <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
 fs/open.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

--- a/fs/open.c
+++ b/fs/open.c
@@ -396,10 +396,10 @@ SYSCALL_DEFINE1(fchdir, unsigned int, fd
 {
        struct file *file;
        struct inode *inode;
-       int error;
+       int error, fput_needed;

        error = -EBADF;
-       file = fget(fd);
+       file = fget_raw_light(fd, &fput_needed);
        if (!file)
                goto out;

@@ -413,7 +413,7 @@ SYSCALL_DEFINE1(fchdir, unsigned int, fd
        if (!error)
                set_fs_pwd(current->fs, &file->f_path);
 out_putf:
-       fput(file);
+       fput_light(file, fput_needed);
 out:
        return error;
 }


Josh


_______________________________________________
kernel mailing list
[email protected]
https://admin.fedoraproject.org/mailman/listinfo/kernel

Reply via email to