From: Hwankyu Jhun Date: Tue, 30 Jun 2020 03:53:53 +0000 (+0900) Subject: Change SMACK label of the log file X-Git-Tag: accepted/tizen/unified/20200701.032316~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F90%2F237390%2F2;p=platform%2Fcore%2Fappfw%2Flaunchpad.git Change SMACK label of the log file Change-Id: Ib07f8c8b69065a817626557c2f1dc18698ff9941 Signed-off-by: Hwankyu Jhun --- diff --git a/packaging/launchpad.spec b/packaging/launchpad.spec index 0c0cb55..198bc46 100644 --- a/packaging/launchpad.spec +++ b/packaging/launchpad.spec @@ -30,6 +30,7 @@ BuildRequires: pkgconfig(tanchor) BuildRequires: pkgconfig(dbus-1) BuildRequires: pkgconfig(iniparser) BuildRequires: pkgconfig(libxml-2.0) +BuildRequires: pkgconfig(libsmack) Requires(post): /sbin/ldconfig Requires(post): /usr/bin/systemctl diff --git a/src/launchpad/CMakeLists.txt b/src/launchpad/CMakeLists.txt index 39ce5c8..ad10ae0 100644 --- a/src/launchpad/CMakeLists.txt +++ b/src/launchpad/CMakeLists.txt @@ -10,6 +10,7 @@ PKG_CHECK_MODULES(LAUNCHPAD_PROCESS_POOL_PKGS REQUIRED gio-2.0 iniparser libcap + libsmack libsystemd libtzplatform-config security-manager diff --git a/src/common/inc/launchpad_logger.h b/src/launchpad/inc/launchpad_logger.h similarity index 100% rename from src/common/inc/launchpad_logger.h rename to src/launchpad/inc/launchpad_logger.h diff --git a/src/common/src/launchpad_logger.c b/src/launchpad/src/launchpad_logger.c similarity index 87% rename from src/common/src/launchpad_logger.c rename to src/launchpad/src/launchpad_logger.c index a4e6b7f..0a32b7e 100644 --- a/src/common/src/launchpad_logger.c +++ b/src/launchpad/src/launchpad_logger.c @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include @@ -40,6 +41,21 @@ struct logger_s { int index; }; +static int __set_smack_label(const char *path, const char *label) +{ + int ret; + + ret = smack_setlabel(path, label, SMACK_LABEL_ACCESS); + if (ret != 0) { + ret = -errno; + _E("smack_setlabel() is failed. path(%s), label(%s), errno(%d)", + path, label, errno); + return ret; + } + + return 0; +} + static int __create_directory(const char *path) { mode_t mode; @@ -68,10 +84,18 @@ static int __create_launchpad_directories(void) if (ret < 0) return ret; + ret = __set_smack_label(LAUNCHPAD_LOG_APPFW_PATH, "_"); + if (ret < 0) + return ret; + ret = __create_directory(LAUNCHPAD_LOG_PATH); if (ret < 0) return ret; + ret = __set_smack_label(LAUNCHPAD_LOG_PATH, "User"); + if (ret < 0) + return ret; + return 0; } @@ -104,6 +128,12 @@ int _logger_create(const char *path, logger_h *handle) return ret; } + ret = __set_smack_label(path, "User"); + if (ret < 0) { + _logger_destroy(logger); + return ret; + } + offset = lseek(logger->fd, 0, SEEK_END); if (offset != 0) { logger->index = (int)(offset / LAUNCHPAD_LOG_MAX_STRING_SIZE);