From: Jihoon Kim Date: Tue, 19 Jan 2016 00:55:28 +0000 (+0900) Subject: Check NULL in privilege check code X-Git-Tag: accepted/tizen/mobile/20160126.050743~6 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=50b99ed55b6d82c8c4259f3b613a50f578220969;p=platform%2Fcore%2Fuifw%2Fisf.git Check NULL in privilege check code Change-Id: Ib68539a4a389760db49d7d113d38f9bb6e67d66b --- diff --git a/ism/src/privilege_checker.cpp b/ism/src/privilege_checker.cpp index cb71ffc..ebb689e 100644 --- a/ism/src/privilege_checker.cpp +++ b/ism/src/privilege_checker.cpp @@ -41,9 +41,14 @@ PrivilegeChecker::PrivilegeChecker (int sockfd) PrivilegeChecker::~PrivilegeChecker () { - free (m_client); - free (m_session); - free (m_user); + if (m_client) + free (m_client); + + if (m_session) + free (m_session); + + if (m_user) + free (m_user); } bool @@ -81,9 +86,14 @@ PrivilegeChecker::initializeCreditionals () return true; CLEANUP: - free (m_client); - free (m_session); - free (m_user); + if (m_client) + free (m_client); + + if (m_session) + free (m_session); + + if (m_user) + free (m_user); m_client = NULL; m_session = NULL; @@ -98,6 +108,10 @@ PrivilegeChecker::checkPrivilege (const char *privilege) { if (!initializeCreditionals ()) return false; + + if (!p_cynara) + return false; + int ret = cynara_check (p_cynara, m_client, m_session, m_user, privilege); cynara_log("cynara_check()", ret); if (ret != CYNARA_API_ACCESS_ALLOWED) @@ -116,5 +130,8 @@ isf_cynara_initialize () void isf_cynara_finish () { - cynara_finish (p_cynara); + if (p_cynara) + cynara_finish (p_cynara); + + p_cynara = NULL; }