]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
librados-config.cc: catch ceph::FailedAssertion exception
authorDanny Al-Gaaf <danny.al-gaaf@bisect.de>
Thu, 13 Nov 2014 13:47:49 +0000 (14:47 +0100)
committerDanny Al-Gaaf <danny.al-gaaf@bisect.de>
Thu, 13 Nov 2014 22:39:09 +0000 (23:39 +0100)
CID 717157 (#1-2): Uncaught exception (UNCAUGHT_EXCEPT)
 root_function: In function main(int, char const **) an exception
 of type ceph::FailedAssertion is thrown and never caught.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
src/librados-config.cc

index ffe758129b862006b27e9c90ddf086fc471b999c..210c14d0c167a67cbe0f3a8713d906ac6f39f0b8 100644 (file)
@@ -42,10 +42,14 @@ int main(int argc, const char **argv)
   bool opt_version = false;
   bool opt_vernum = false;
 
-  global_init(NULL, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY,
-             CINIT_FLAG_NO_DEFAULT_CONFIG_FILE);
-  common_init_finish(g_ceph_context);
-
+  try {
+    global_init(NULL, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_UTILITY,
+               CINIT_FLAG_NO_DEFAULT_CONFIG_FILE);
+    common_init_finish(g_ceph_context);
+  } catch (ceph::FailedAssertion &a) {
+    cout << "ceph::FailedAssertion thrown, exit." << std::endl;
+    exit(1);
+  }
   for (std::vector<const char*>::iterator i = args.begin();
        i != args.end(); ) {
     if (strcmp(*i, "--") == 0) {