summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVincent Bernat <vincent@bernat.im>2015-08-15 14:07:44 +0200
committerEric Van Hensbergen <ericvh@gmail.com>2015-08-23 14:21:36 -0500
commitb5ac1fb2717e48177d3f73f9e4c9b556c0a24c6b (patch)
tree78aa2dda3eaae2b11d3775ccd0a8aa0f2cd28646
parentcb9af418598b8f388844e1849014c689a048ce54 (diff)
downloadlinux-b5ac1fb2717e48177d3f73f9e4c9b556c0a24c6b.tar.gz
linux-b5ac1fb2717e48177d3f73f9e4c9b556c0a24c6b.tar.bz2
linux-b5ac1fb2717e48177d3f73f9e4c9b556c0a24c6b.zip
9p: fix return code of read() when count is 0
When reading 0 bytes from an empty file on a 9P filesystem, the return code of read() was not 0 as expected due to an unitialized err variable. Tested with this simple program: #include <assert.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> int main(int argc, const char **argv) { assert(argc == 2); char buffer[256]; int fd = open(argv[1], O_RDONLY|O_NOCTTY); assert(fd >= 0); assert(read(fd, buffer, 0) == 0); return 0; } Signed-off-by: Vincent Bernat <vincent@bernat.im> Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
-rw-r--r--fs/9p/vfs_file.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/9p/vfs_file.c b/fs/9p/vfs_file.c
index 1ef16bd8280b..3abc447783aa 100644
--- a/fs/9p/vfs_file.c
+++ b/fs/9p/vfs_file.c
@@ -381,7 +381,7 @@ static ssize_t
v9fs_file_read_iter(struct kiocb *iocb, struct iov_iter *to)
{
struct p9_fid *fid = iocb->ki_filp->private_data;
- int ret, err;
+ int ret, err = 0;
p9_debug(P9_DEBUG_VFS, "count %zu offset %lld\n",
iov_iter_count(to), iocb->ki_pos);