From 364759e0d2beec229c1cbf54a6e73feb1079112a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Sun, 11 Nov 2007 16:28:56 +0000 Subject: [PATCH] * The "bytes" as passed to {read|write}_file_io_vec_pages() was never initialized, causing those functions to read|write a random amount. * This fixes bug #1614 - amazing how well the system worked with those randomly sized requests... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22901 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp | 4 ++-- src/add-ons/kernel/file_systems/fat/file.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp b/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp index ff7f4df2fa..5ff5bfdf75 100644 --- a/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp +++ b/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp @@ -358,7 +358,7 @@ bfs_read_pages(fs_volume _fs, fs_vnode _node, fs_cookie _cookie, off_t pos, bool bufferOverflow = status == B_BUFFER_OVERFLOW; - size_t bytes; + size_t bytes = bytesLeft; status = read_file_io_vec_pages(volume->Device(), fileVecs, fileVecCount, vecs, count, &vecIndex, &vecOffset, &bytes); if (status != B_OK || !bufferOverflow) @@ -404,7 +404,7 @@ bfs_write_pages(fs_volume _fs, fs_vnode _node, fs_cookie _cookie, off_t pos, bool bufferOverflow = status == B_BUFFER_OVERFLOW; - size_t bytes; + size_t bytes = bytesLeft; status = write_file_io_vec_pages(volume->Device(), fileVecs, fileVecCount, vecs, count, &vecIndex, &vecOffset, &bytes); if (status != B_OK || !bufferOverflow) diff --git a/src/add-ons/kernel/file_systems/fat/file.c b/src/add-ons/kernel/file_systems/fat/file.c index f2791633c0..dede087809 100644 --- a/src/add-ons/kernel/file_systems/fat/file.c +++ b/src/add-ons/kernel/file_systems/fat/file.c @@ -1505,7 +1505,7 @@ dosfs_read_pages(fs_volume _fs, fs_vnode _node, fs_cookie _cookie, off_t pos, struct file_io_vec fileVecs[8]; uint32 fileVecCount = 8; bool bufferOverflow; - size_t bytes; + size_t bytes = bytesLeft; status = file_map_translate(node->file_map, pos, bytesLeft, fileVecs, &fileVecCount); @@ -1557,7 +1557,7 @@ dosfs_write_pages(fs_volume _fs, fs_vnode _node, fs_cookie _cookie, off_t pos, struct file_io_vec fileVecs[8]; uint32 fileVecCount = 8; bool bufferOverflow; - size_t bytes; + size_t bytes = bytesLeft; status = file_map_translate(node->file_map, pos, bytesLeft, fileVecs, &fileVecCount);