Remove memory allocation in signal handler to avoid deadlock
[platform/core/multimedia/libmm-session.git] / mm_session.c
index 6efb5a7..69d3ec7 100644 (file)
@@ -28,7 +28,6 @@
 #include <mm_error.h>
 #include <mm_debug.h>
 #include <errno.h>
-#include <glib.h>
 #include <pthread.h>
 #include <signal.h>
 
@@ -466,7 +465,7 @@ int _mm_session_util_read_information(int app_pid, int *session_type, int *flags
 
 void __session_signal_handler(int signo)
 {
-       char* filename = NULL;
+       char filename[MAX_FILE_LENGTH];
        char str_error[256];
 
        debug_warning("ENTER, sig.num(%d)", signo);
@@ -476,16 +475,14 @@ void __session_signal_handler(int signo)
        sigfillset(&all_mask);
        sigprocmask(SIG_BLOCK, &all_mask, &old_mask);
 
-       filename = g_strdup_printf("/tmp/mm_session_%d", getpid());
+       snprintf(filename, sizeof(filename) - 1, "/tmp/mm_session_%d", getpid());
        if (!remove(filename)) {
                debug_log(" remove %s success\n", filename);
        } else {
-               strerror_r (errno, str_error, sizeof (str_error));
+               strerror_r(errno, str_error, sizeof(str_error));
                debug_error(" remove %s failed with %s\n", filename, str_error);
        }
 
-       g_free(filename);
-
        sigprocmask(SIG_SETMASK, &old_mask, NULL);
        /* signal unblock ------------ */