Fix close socket (probe - manager) after stop 02/145202/2
authorVyacheslav Cherkashin <v.cherkashin@samsung.com>
Tue, 2 May 2017 15:06:28 +0000 (18:06 +0300)
committerVyacheslav Cherkashin <v.cherkashin@samsung.com>
Mon, 21 Aug 2017 14:52:43 +0000 (17:52 +0300)
Change-Id: Ie95542d27fee0f8fb42c89c7d5fe00428b3ace99
Signed-off-by: Vyacheslav Cherkashin <v.cherkashin@samsung.com>
helper/libdaprobe.c

index 58a2ef264fdd98d288f6e7034c529bfbe2ea7b57..f13b95fe72cec706d3ded5edea570d4b687dd9be 100755 (executable)
@@ -368,15 +368,21 @@ static void *recv_thread(void __unused * data)
                                _configure((char *)data_buf);
                        } else if (log.type == APP_MSG_TARGET_BINS) {
                                _process_target_bins((char *)data_buf);
-                       } else if ((log.type == APP_MSG_STOP) ||
-                                  (log.type == APP_MSG_STOP_WITHOUT_KILL)) {
-                               PRINTMSG("APP_MSG_STOP (%d)", log.type);
+                       } else if (log.type == APP_MSG_STOP) {
                                /* Send acknowlege message to manager */
                                printLog(&log, APP_MSG_STOP);
                                /* Do leaks check if LSan is enabled. */
                                lsan_do_leak_check();
-                               if (log.type != APP_MSG_STOP_WITHOUT_KILL)
-                                       application_exit();
+
+                               application_exit();
+                               break;
+                       } else if (log.type == APP_MSG_STOP_WITHOUT_KILL) {
+                               /* Send acknowlege message to manager */
+                               printLog(&log, APP_MSG_STOP);
+                               /* Do leaks check if LSan is enabled. */
+                               lsan_do_leak_check();
+
+                               _uninit_();
                                break;
                        } else if(log.type == APP_MSG_GET_UI_HIERARCHY) {
                                PRINTMSG("APP_MSG_GET_UI_HIERARCHY");
@@ -522,6 +528,8 @@ void _uninit_(void)
 {
        int i;
 
+       lsan_close_liblsan();
+
        gTraceInfo.init_complete = -1;
        PRINTMSG("dynamic analyzer probe helper so unloading... pid[%d]\n",
                 getpid());
@@ -547,7 +555,6 @@ void _uninit_(void)
 void __attribute__((destructor)) _fini_probe()
 {
        PRINTMSG("->lib destructor. pid[%d]\n", getpid());
-       lsan_close_liblsan();
        _uninit_();
 }