From: Seungbae Shin Date: Wed, 22 Feb 2017 11:24:53 +0000 (+0900) Subject: Remove memory allocation in signal handler to avoid deadlock X-Git-Tag: accepted/tizen/3.0/mobile/20200709.001554~1 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fmultimedia%2Flibmm-session.git;a=commitdiff_plain;h=0d8349c7185620c9639b8803b54fd0b725cee0e0 Remove memory allocation in signal handler to avoid deadlock [Version] 0.2.10 [Profile] Common [Issue Type] Enhance Change-Id: I8f76eba6830dd040424db38efbb8ae4684c7020f --- diff --git a/mm_session.c b/mm_session.c index 6efb5a7..69d3ec7 100644 --- a/mm_session.c +++ b/mm_session.c @@ -28,7 +28,6 @@ #include #include #include -#include #include #include @@ -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 ------------ */ diff --git a/packaging/libmm-session.spec b/packaging/libmm-session.spec index b1935f5..375bdda 100644 --- a/packaging/libmm-session.spec +++ b/packaging/libmm-session.spec @@ -1,6 +1,6 @@ Name: libmm-session Summary: Multimedia Session Library -Version: 0.2.9 +Version: 0.2.10 Release: 0 Group: Multimedia/Libraries License: Apache-2.0