]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
seastore/rbm: fix wrong statement
authormyoungwon oh <ohmyoungwon@gmail.com>
Tue, 25 May 2021 07:55:34 +0000 (16:55 +0900)
committermyoungwon oh <ohmyoungwon@gmail.com>
Tue, 15 Jun 2021 02:09:06 +0000 (11:09 +0900)
Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
src/crimson/os/seastore/randomblock_manager.cc

index 9897aa79eeccb5a148f4fc2096723964ef8cb956..46e140bcd3b9cbaceb40ddeef26d7d70bca9ef90 100644 (file)
@@ -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<>