From 02cb896640daaeffcbf78cb24db6c2dbba9f9d2b Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Fri, 19 Mar 2010 18:11:32 +0000 Subject: [PATCH] * StreamReader::ReadAt(): Passed incorrect size to _ReadDirectItem(), which could cause a memory read access beyond the block, resulting in a crash, if nothing was mapped there. * Automatic white space cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35915 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../kernel/file_systems/reiserfs/Iterators.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/add-ons/kernel/file_systems/reiserfs/Iterators.cpp b/src/add-ons/kernel/file_systems/reiserfs/Iterators.cpp index f0a76f7288..78093cefdd 100644 --- a/src/add-ons/kernel/file_systems/reiserfs/Iterators.cpp +++ b/src/add-ons/kernel/file_systems/reiserfs/Iterators.cpp @@ -1,17 +1,17 @@ // Iterators.h // -// Copyright (c) 2003, Ingo Weinhold (bonefish@cs.tu-berlin.de) +// Copyright (c) 2003-2010, Ingo Weinhold (bonefish@cs.tu-berlin.de) // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. -// +// // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. -// +// // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA @@ -19,7 +19,9 @@ // You can alternatively use *this file* under the terms of the the MIT // license included in this package. + #include "Iterators.h" + #include "Block.h" #include "BlockCache.h" #include "Key.h" @@ -27,6 +29,7 @@ #include "StatItem.h" #include "Tree.h" + // min and max // We don't want to include otherwise we also get // and other undesired things. @@ -246,7 +249,7 @@ TreeIterator::GetLevel() const - \c DOWN: Down one level (in leaf direction). Goes to the child node of the current node the iterator currently points at. Points afterwards to the 0th child node of the new current node (unless it is a leaf node). - + \c FORWARD and \c BACKWARDS do not change the current node! \param direction \c FORWARD, \c BACKWARDS, \c UP or \c DOWN @@ -799,7 +802,7 @@ ItemIterator::_SearchRightMost(LeafNode *node, const VKey *k, This class basically wraps the ItemIterator class and provides a more convenient interface for iteration through items of one given object (directory, link or file). It finds only items of the object - identified by the dir and object ID specified on initialization. + identified by the dir and object ID specified on initialization. */ // constructor @@ -1340,7 +1343,7 @@ StreamReader::ReadAt(off_t position, void *buffer, size_t bufferSize, error = _ReadIndirectItem(inItemOffset, buffer, toRead); break; case TYPE_DIRECT: - error = _ReadDirectItem(inItemOffset, buffer, bufferSize); + error = _ReadDirectItem(inItemOffset, buffer, toRead); break; case TYPE_STAT_DATA: case TYPE_DIRENTRY: