diff options
author | Latchesar Ionkov <lucho@ionkov.net> | 2005-09-23 00:43:52 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-09-23 01:17:33 -0400 |
commit | a1f9d8d23fef301ba0c0b4983e0aa947168e1c37 (patch) | |
tree | c8927b500a1b93aed027776b88bc6a1e8664c5fa /fs | |
parent | a8e63bff521f0387fb4f4e486dede0e78dca8f41 (diff) |
[PATCH] v9fs: replace strlen on newly allocated by __getname buffers to PATH_MAX
v9fs_vfs_readlink allocates space for the link using __getname and
errorneously uses strlen on the newly allocated buffer to check if the buffer
passed by the user is bigger than the one returned by __getname.
The patch replaces the strlen usage to PATH_MAX, which is the actual size of
the buffers returned by __getname.
Signed-off-by: Latchesar Ionkov <lucho@ionkov.net>
Cc: Eric Van Hensbergen <ericvh@gmail.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/9p/vfs_inode.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/9p/vfs_inode.c b/fs/9p/vfs_inode.c index 0c13fc600049..b16322db5ce6 100644 --- a/fs/9p/vfs_inode.c +++ b/fs/9p/vfs_inode.c | |||
@@ -1063,8 +1063,8 @@ static int v9fs_vfs_readlink(struct dentry *dentry, char __user * buffer, | |||
1063 | int ret; | 1063 | int ret; |
1064 | char *link = __getname(); | 1064 | char *link = __getname(); |
1065 | 1065 | ||
1066 | if (strlen(link) < buflen) | 1066 | if (buflen > PATH_MAX) |
1067 | buflen = strlen(link); | 1067 | buflen = PATH_MAX; |
1068 | 1068 | ||
1069 | dprintk(DEBUG_VFS, " dentry: %s (%p)\n", dentry->d_iname, dentry); | 1069 | dprintk(DEBUG_VFS, " dentry: %s (%p)\n", dentry->d_iname, dentry); |
1070 | 1070 | ||