]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: fix dereference of empty std::optional in RGWDeleteMultiObj::execute() 49387/head
authorCory Snyder <csnyder@iland.com>
Mon, 12 Dec 2022 08:04:20 +0000 (03:04 -0500)
committerCory Snyder <csnyder@iland.com>
Mon, 12 Dec 2022 08:04:28 +0000 (03:04 -0500)
Fixes a crash that occurs when RGW is executed without an async context.

Fixes: https://tracker.ceph.com/issues/58243
Signed-off-by: Cory Snyder <csnyder@iland.com>
src/rgw/rgw_op.cc

index 29552560b27cb82dafa109f960a0a5dc927bfe50..81fb767d2a1248c5612900d1c427d05c4fbc6c12 100644 (file)
@@ -7080,9 +7080,11 @@ void RGWDeleteMultiObj::execute(optional_yield y)
       handle_individual_object(obj_key, y, &*formatter_flush_cond);
     }
   }
-  wait_flush(y, &*formatter_flush_cond, [this, n=multi_delete->objects.size()] {
-    return n == ops_log_entries.size();
-  });
+  if (formatter_flush_cond) {
+    wait_flush(y, &*formatter_flush_cond, [this, n=multi_delete->objects.size()] {
+      return n == ops_log_entries.size();
+    });
+  }
 
   /*  set the return code to zero, errors at this point will be
   dumped to the response */