Change SMACK label of the log file 90/237390/2
authorHwankyu Jhun <h.jhun@samsung.com>
Tue, 30 Jun 2020 03:53:53 +0000 (12:53 +0900)
committerHwankyu Jhun <h.jhun@samsung.com>
Tue, 30 Jun 2020 03:57:13 +0000 (12:57 +0900)
Change-Id: Ib07f8c8b69065a817626557c2f1dc18698ff9941
Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
packaging/launchpad.spec
src/launchpad/CMakeLists.txt
src/launchpad/inc/launchpad_logger.h [moved from src/common/inc/launchpad_logger.h with 100% similarity]
src/launchpad/src/launchpad_logger.c [moved from src/common/src/launchpad_logger.c with 87% similarity]

index 0c0cb55..198bc46 100644 (file)
@@ -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
index 39ce5c8..ad10ae0 100644 (file)
@@ -10,6 +10,7 @@ PKG_CHECK_MODULES(LAUNCHPAD_PROCESS_POOL_PKGS REQUIRED
        gio-2.0
        iniparser
        libcap
+       libsmack
        libsystemd
        libtzplatform-config
        security-manager
similarity index 87%
rename from src/common/src/launchpad_logger.c
rename to src/launchpad/src/launchpad_logger.c
index a4e6b7f..0a32b7e 100644 (file)
@@ -22,6 +22,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include <sys/smack.h>
 #include <sys/stat.h>
 #include <sys/types.h>
 #include <time.h>
@@ -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);