From cdb8a98601ca85ddc345eae519c8e8fc25de253f Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Sun, 15 Aug 2010 19:49:17 -0700 Subject: [PATCH] monclient: gracefully error out when given an invalid monmap path --- src/mon/MonClient.cc | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/mon/MonClient.cc b/src/mon/MonClient.cc index 0bf844b90654f..0bcc658691fbf 100644 --- a/src/mon/MonClient.cc +++ b/src/mon/MonClient.cc @@ -49,11 +49,18 @@ int MonClient::build_initial_monmap() // file? if (g_conf.monmap) { const char *monmap_fn = g_conf.monmap; - int r = monmap.read(monmap_fn); + int r; + try { + r = monmap.read(monmap_fn); + } + catch (buffer::error *e) { + r = -EINVAL; + } if (r >= 0) return 0; char buf[80]; - cerr << "unable to read monmap from " << monmap_fn << ": " << strerror_r(errno, buf, sizeof(buf)) << std::endl; + cerr << "unable to read/decode monmap from " << monmap_fn << ": " << strerror_r(-r, buf, sizeof(buf)) << std::endl; + return r; } // -m foo? -- 2.47.3