diff --git a/services/init/init_service_socket.c b/services/init/init_service_socket.c index 026b78638cb8da0f13e41b62b3e10e2ebb0d8053..cdc9970c7689a1ceae715198319b3c6ad509d135 100644 --- a/services/init/init_service_socket.c +++ b/services/init/init_service_socket.c @@ -25,6 +25,9 @@ #include "init_log.h" #include "init_service.h" #include "loop_event.h" +#ifdef WITH_SELINUX +#include "policycoreutils.h" +#endif #include "securec.h" #define SOCKET_BUFF_SIZE (256 * 1024) @@ -139,6 +142,12 @@ static int CreateSocket(ServiceSocket *sockopt) return -1; } INIT_LOGI("CreateSocket %s success", sockopt->name); + +#ifdef WITH_SELINUX + if (RestoreconRecurse(HOS_SOCKET_DIR)) { + INIT_LOGE("DoRestorecon failed for '%s', err %d.", sockopt->name, errno); + } +#endif return sockopt->sockFd; }