From 20974dc0520c754ea58e4364ac79cbb143b2f577 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 1 Oct 2013 15:22:05 -0700 Subject: [PATCH] rados: make 'tmap dump' gracefully handle non-tmap data Signed-off-by: Sage Weil --- src/tools/rados/rados.cc | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/tools/rados/rados.cc b/src/tools/rados/rados.cc index fdf7e61d41e0a..009df5cd0af5b 100644 --- a/src/tools/rados/rados.cc +++ b/src/tools/rados/rados.cc @@ -1813,8 +1813,15 @@ static int rados_tool_common(const std::map < std::string, std::string > &opts, bufferlist::iterator p = outdata.begin(); bufferlist header; map kv; - ::decode(header, p); - ::decode(kv, p); + try { + ::decode(header, p); + ::decode(kv, p); + } + catch (buffer::error& e) { + cerr << "error decoding tmap " << pool_name << "/" << oid << std::endl; + ret = -EINVAL; + goto out; + } cout << "header (" << header.length() << " bytes):\n"; header.hexdump(cout); cout << "\n"; -- 2.39.5