romfs problem with symlinks and execution

From: Pete Zaitcev (zaitcev@metabyte.com)
Date: Tue Apr 18 2000 - 00:33:29 EST


Hi,

An attempt to execute programs from romfs causes an oops if a symlink
is encountered, around this code in a more or less fresh 2.3.99:

static char *page_getlink(struct dentry * dentry, struct page **ppage){
        struct page * page;
        struct address_space *mapping = dentry->d_inode->i_mapping;
        page = read_cache_page(mapping, 0, (filler_t *)mapping->a_ops->readpage,
                                dentry);

The following fix helps to avoid the oops, but I am not sure if this
is the right thing to do:

--- fs/romfs/inode.c.0 Mon Apr 17 22:06:05 2000
+++ fs/romfs/inode.c Mon Apr 17 21:54:21 2000
@@ -506,7 +506,6 @@
                         break;
                 case 3:
                         i->i_op = &page_symlink_inode_operations;
+ i->i_data.a_ops = &romfs_aops;
                         i->i_mode = S_IRWXUGO;
                         break;
                 default:

Would the maintainer please apply this or some other fix, please?

--Pete

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sun Apr 23 2000 - 21:00:12 EST