aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorin Malita <fmalita@gmail.com>2006-06-25 08:48:31 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-06-25 13:01:15 -0400
commit0710d36a0fd5db3176369397f0fc49db32a63507 (patch)
treef1d0de2afccdd6c7f967fc12c752f5323e4e3a8f
parenteab03ac7bd3e0da99eb9dc068772a85a5e3f3577 (diff)
[PATCH] 9pfs: missing result check in v9fs_vfs_readlink() and v9fs_vfs_link()
__getname() may fail and return NULL (as pointed out by Coverity 437 & 1220). Signed-off-by: Florin Malita <fmalita@gmail.com> Acked-by: Eric Van Hensbergen <ericvh@gmail.com> Cc: <rminnich@lanl.gov> Cc: Latchesar Ionkov <lucho@ionkov.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--fs/9p/vfs_inode.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/9p/vfs_inode.c b/fs/9p/vfs_inode.c
index 2cb87ba4b1c1..8e60dc7ec4a6 100644
--- a/fs/9p/vfs_inode.c
+++ b/fs/9p/vfs_inode.c
@@ -1054,6 +1054,9 @@ static int v9fs_vfs_readlink(struct dentry *dentry, char __user * buffer,
1054 int ret; 1054 int ret;
1055 char *link = __getname(); 1055 char *link = __getname();
1056 1056
1057 if (unlikely(!link))
1058 return -ENOMEM;
1059
1057 if (buflen > PATH_MAX) 1060 if (buflen > PATH_MAX)
1058 buflen = PATH_MAX; 1061 buflen = PATH_MAX;
1059 1062
@@ -1227,6 +1230,9 @@ v9fs_vfs_link(struct dentry *old_dentry, struct inode *dir,
1227 } 1230 }
1228 1231
1229 name = __getname(); 1232 name = __getname();
1233 if (unlikely(!name))
1234 return -ENOMEM;
1235
1230 sprintf(name, "%d\n", oldfid->fid); 1236 sprintf(name, "%d\n", oldfid->fid);
1231 retval = v9fs_vfs_mkspecial(dir, dentry, V9FS_DMLINK, name); 1237 retval = v9fs_vfs_mkspecial(dir, dentry, V9FS_DMLINK, name);
1232 __putname(name); 1238 __putname(name);