X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=fs%2F9p%2Fvfs_inode.c;h=18f74ec4dce922da7ff4d6f88638e7aa4077ae8a;hb=65f69e5c16f8eee17b7f71bfad9e8e58f44c7386;hp=5947628aefef142f99edb0bcc67f9bc625d125aa;hpb=a80a66caf8110fc33af8013353fe0da0ae553a13;p=~andy%2Flinux diff --git a/fs/9p/vfs_inode.c b/fs/9p/vfs_inode.c index 5947628aefe..18f74ec4dce 100644 --- a/fs/9p/vfs_inode.c +++ b/fs/9p/vfs_inode.c @@ -994,8 +994,7 @@ static int v9fs_readlink(struct dentry *dentry, char *buffer, int buflen) P9_DPRINTK(P9_DEBUG_VFS, "%s -> %s (%s)\n", dentry->d_name.name, st->extension, buffer); - retval = buflen; - + retval = strnlen(buffer, buflen); done: kfree(st); return retval; @@ -1062,7 +1061,7 @@ static void *v9fs_vfs_follow_link(struct dentry *dentry, struct nameidata *nd) __putname(link); link = ERR_PTR(len); } else - link[len] = 0; + link[min(len, PATH_MAX-1)] = 0; } nd_set_link(nd, link);