Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a6eb0be6d5cc1851deb6619e6f8b1bbd0a0dbab4
Commit:     a6eb0be6d5cc1851deb6619e6f8b1bbd0a0dbab4
Parent:     bca271136f06514253aa28c24c04fc23b88e971e
Author:     Paolo 'Blaisorblade' Giarrusso <[EMAIL PROTECTED]>
AuthorDate: Wed Mar 7 20:41:08 2007 -0800
Committer:  Linus Torvalds <[EMAIL PROTECTED]>
CommitDate: Thu Mar 8 07:38:21 2007 -0800

    [PATCH] uml: hostfs: make hostfs= option work as a jail, as intended.
    
    When a given host directory is specified to be mounted both in hostfs=path1
    and with mount option -o path2, we should give access to path1/path2, but 
this
    does not happen.  Fix that in the simpler way.
    
    Also, root_ino can be the empty string, since we use %s/%s as format.
    
    Signed-off-by: Paolo 'Blaisorblade' Giarrusso <[EMAIL PROTECTED]>
    Acked-by: Jeff Dike <[EMAIL PROTECTED]>
    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
    Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
---
 fs/hostfs/hostfs_kern.c |   12 +++++++-----
 1 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/fs/hostfs/hostfs_kern.c b/fs/hostfs/hostfs_kern.c
index 6f10e43..9baf697 100644
--- a/fs/hostfs/hostfs_kern.c
+++ b/fs/hostfs/hostfs_kern.c
@@ -47,7 +47,7 @@ struct dentry_operations hostfs_dentry_ops = {
 };
 
 /* Changed in hostfs_args before the kernel starts running */
-static char *root_ino = "/";
+static char *root_ino = "";
 static int append = 0;
 
 #define HOSTFS_SUPER_MAGIC 0x00c0ffee
@@ -947,15 +947,17 @@ static int hostfs_fill_sb_common(struct super_block *sb, 
void *d, int silent)
        sb->s_magic = HOSTFS_SUPER_MAGIC;
        sb->s_op = &hostfs_sbops;
 
-       if((data == NULL) || (*data == '\0'))
-               data = root_ino;
+       /* NULL is printed as <NULL> by sprintf: avoid that. */
+       if (data == NULL)
+               data = "";
 
        err = -ENOMEM;
-       name = kmalloc(strlen(data) + 1, GFP_KERNEL);
+       name = kmalloc(strlen(root_ino) + 1
+                       + strlen(data) + 1, GFP_KERNEL);
        if(name == NULL)
                goto out;
 
-       strcpy(name, data);
+       sprintf(name, "%s/%s", root_ino, data);
 
        root_inode = iget(sb, 0);
        if(root_inode == NULL)
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to