From 13225cdeee8d2810be5de6d7eed803b92c83c493 Mon Sep 17 00:00:00 2001 From: Matan Breizman Date: Wed, 3 Aug 2022 07:11:54 +0000 Subject: [PATCH] crimson/osd: add try-catch block when decoding ObjectState Signed-off-by: Matan Breizman --- src/crimson/osd/pg_backend.cc | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/crimson/osd/pg_backend.cc b/src/crimson/osd/pg_backend.cc index a9871edf521..77dcc580191 100644 --- a/src/crimson/osd/pg_backend.cc +++ b/src/crimson/osd/pg_backend.cc @@ -83,9 +83,14 @@ PGBackend::load_metadata(const hobject_t& oid) loaded_object_md_t::ref ret(new loaded_object_md_t()); if (auto oiiter = attrs.find(OI_ATTR); oiiter != attrs.end()) { bufferlist bl = std::move(oiiter->second); - ret->os = ObjectState( - object_info_t(bl, oid), - true); + try { + ret->os = ObjectState( + object_info_t(bl, oid), + true); + } catch (const buffer::error&) { + logger().warn("unable to decode ObjectState"); + throw crimson::osd::invalid_argument(); + } } else { logger().error( "load_metadata: object {} present but missing object info", -- 2.39.5