]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
client/fuse: object release order error
authorhuanwen ren <ren.huanwen@zte.com.cn>
Thu, 28 Apr 2016 07:22:48 +0000 (15:22 +0800)
committerhuanwen ren <ren.huanwen@zte.com.cn>
Thu, 28 Apr 2016 07:22:48 +0000 (15:22 +0800)
object release order error,fix up
state:
(1)out_mc_start_failed should not be released Messenger object
(2)out_messenger_start_failed need release the Cfuse object

Signed-off-by: huanwen ren <ren.huanwen@zte.com.cn>
src/ceph_fuse.cc

index a6824481ec97907f60e28c60d57988aa4c4947a8..fe7a6c032947f4de074f1cc6026df8f5b8187350 100644 (file)
@@ -264,11 +264,7 @@ int main(int argc, const char **argv, const char *envp[]) {
     
   out_client_unmount:
     client->unmount();
-    //cout << "unmounted" << std::endl;
-    
     cfuse->finalize();
-    delete cfuse;
-    
   out_shutdown:
     client->shutdown();
   out_init_failed:
@@ -279,7 +275,9 @@ int main(int argc, const char **argv, const char *envp[]) {
     messenger->shutdown();
     messenger->wait();
   out_messenger_start_failed:
+    delete cfuse;
     delete client;
+    delete messenger;
   out_mc_start_failed:
     
     if (g_conf->daemonize) {
@@ -288,7 +286,6 @@ int main(int argc, const char **argv, const char *envp[]) {
       foo += ::write(fd[1], &r, sizeof(r));
     }
     
-    delete messenger;
     g_ceph_context->put();
     free(newargv);