From: myoungwon oh Date: Tue, 25 May 2021 07:55:34 +0000 (+0900) Subject: seastore/rbm: fix wrong statement X-Git-Tag: v17.1.0~1638^2~11 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=f72ad486ac653c2f1bf8a62c99971e1d6ae98b26;p=ceph-ci.git seastore/rbm: fix wrong statement Signed-off-by: Myoungwon Oh --- diff --git a/src/crimson/os/seastore/randomblock_manager.cc b/src/crimson/os/seastore/randomblock_manager.cc index 9897aa79eec..46e140bcd3b 100644 --- a/src/crimson/os/seastore/randomblock_manager.cc +++ b/src/crimson/os/seastore/randomblock_manager.cc @@ -481,7 +481,8 @@ RandomBlockManager::write( bufferptr &bptr) { ceph_assert(device); - if (addr > super.end - super.start) { + if (addr > super.end || addr < super.start || + bptr.length() > super.end - super.start) { return crimson::ct_error::erange::make(); } return device->write( @@ -492,16 +493,16 @@ RandomBlockManager::write( RandomBlockManager::read_ertr::future<> RandomBlockManager::read( blk_paddr_t addr, - bufferptr &buffer) + bufferptr &bptr) { ceph_assert(device); - if (addr > super.end - super.start || - buffer.length() > super.end - super.start) { + if (addr > super.end || addr < super.start || + bptr.length() > super.end - super.start) { return crimson::ct_error::erange::make(); } return device->read( addr, - buffer); + bptr); } RandomBlockManager::close_ertr::future<>