Match-id-079a003b13a9bdf214c8410ea502c3a4c168977d

This commit is contained in:
BianTanggui
2022-02-24 16:07:34 +08:00
3 changed files with 10 additions and 27 deletions

View File

@@ -98,9 +98,7 @@ int ParseFileByLine(char* buffer, int bufferSize, const ParseFileLine fn, const
char resolvedPath[PATH_MAX] = {0x0}; char resolvedPath[PATH_MAX] = {0x0};
if (realpath(filepath, resolvedPath) == NULL && errno != ENOENT) { if (realpath(filepath, resolvedPath) == NULL && errno != ENOENT) {
char* str = FormatLogMessage("cannot canonicalize path %s.", filepath); Logger("Cannot canonicalize path.", LEVEL_ERROR, SCREEN_YES);
Logger(str, LEVEL_ERROR, SCREEN_YES);
free(str);
return -1; return -1;
} }
if (CheckLegality(resolvedPath) != 0) { if (CheckLegality(resolvedPath) != 0) {
@@ -210,9 +208,7 @@ int SetupDeviceCgroup(FILE *cgroupAllow, const char *devName)
ret = stat((const char *)devPath, &devStat); ret = stat((const char *)devPath, &devStat);
if (ret < 0) { if (ret < 0) {
char* str = FormatLogMessage("failed to get stat of %s.", devPath); Logger("Failed to get stat of devpath.", LEVEL_ERROR, SCREEN_YES);
Logger(str, LEVEL_ERROR, SCREEN_YES);
free(str);
return -1; return -1;
} }
@@ -327,7 +323,6 @@ int SetupCgroup(const struct ParsedConfig *config)
FILE *cgroupAllow = NULL; FILE *cgroupAllow = NULL;
if (realpath(config->cgroupPath, resolvedCgroupPath) == NULL && errno != ENOENT) { if (realpath(config->cgroupPath, resolvedCgroupPath) == NULL && errno != ENOENT) {
Logger("cannot canonicalize cgroup.", LEVEL_ERROR, SCREEN_YES); Logger("cannot canonicalize cgroup.", LEVEL_ERROR, SCREEN_YES);
free(str);
return -1; return -1;
} }
if (CheckLegality(resolvedCgroupPath) != 0) { if (CheckLegality(resolvedCgroupPath) != 0) {
@@ -337,7 +332,6 @@ int SetupCgroup(const struct ParsedConfig *config)
cgroupAllow = fopen((const char *)resolvedCgroupPath, "a"); cgroupAllow = fopen((const char *)resolvedCgroupPath, "a");
if (cgroupAllow == NULL) { if (cgroupAllow == NULL) {
Logger("failed to open cgroup file.", LEVEL_ERROR, SCREEN_YES); Logger("failed to open cgroup file.", LEVEL_ERROR, SCREEN_YES);
free(str);
return -1; return -1;
} }
@@ -360,7 +354,6 @@ int SetupCgroup(const struct ParsedConfig *config)
if (SetupDeviceCgroup(cgroupAllow, (const char *)deviceName) < 0) { if (SetupDeviceCgroup(cgroupAllow, (const char *)deviceName) < 0) {
fclose(cgroupAllow); fclose(cgroupAllow);
Logger("failed to setup cgroup.", LEVEL_ERROR, SCREEN_YES); Logger("failed to setup cgroup.", LEVEL_ERROR, SCREEN_YES);
free(str);
return -1; return -1;
} }
} }

View File

@@ -44,17 +44,13 @@ int EnterNsByPath(const char *path, int nsType)
fd = open(path, O_RDONLY); // proc文件接口非外部输入 fd = open(path, O_RDONLY); // proc文件接口非外部输入
if (fd < 0) { if (fd < 0) {
char* str = FormatLogMessage("failed to open ns path: %s.", path); Logger("Failed to open ns path.", LEVEL_ERROR, SCREEN_YES);
Logger(str, LEVEL_ERROR, SCREEN_YES);
free(str);
return -1; return -1;
} }
ret = EnterNsByFd(fd, nsType); ret = EnterNsByFd(fd, nsType);
if (ret < 0) { if (ret < 0) {
char* str = FormatLogMessage("failed to set ns: %s.", path); Logger("failed to set ns.", LEVEL_ERROR, SCREEN_YES);
Logger(str, LEVEL_ERROR, SCREEN_YES);
free(str);
close(fd); close(fd);
return -1; return -1;
} }

View File

@@ -158,25 +158,19 @@ int MakeMountPoints(const char *path, mode_t mode)
int ret = MakeDirWithParent(parentDir, DEFAULT_DIR_MODE); int ret = MakeDirWithParent(parentDir, DEFAULT_DIR_MODE);
if (ret < 0) { if (ret < 0) {
char* str = FormatLogMessage("failed to make parent dir for file: %s", path); Logger("Failed to make parent dir for file.", LEVEL_ERROR, SCREEN_YES);
Logger(str, LEVEL_ERROR, SCREEN_YES);
free(str);
return -1; return -1;
} }
char resolvedPath[PATH_MAX] = {0}; char resolvedPath[PATH_MAX] = {0};
if (realpath(path, resolvedPath) == NULL && errno != ENOENT) { if (realpath(path, resolvedPath) == NULL && errno != ENOENT) {
char* str = FormatLogMessage("failed to resolve path %s.", path); Logger("failed to resolve path.", LEVEL_ERROR, SCREEN_YES);
Logger(str, LEVEL_ERROR, SCREEN_YES);
free(str);
return -1; return -1;
} }
int fd = open(resolvedPath, O_NOFOLLOW | O_CREAT, mode); int fd = open(resolvedPath, O_NOFOLLOW | O_CREAT, mode);
if (fd < 0) { if (fd < 0) {
char* str = FormatLogMessage("cannot create file: %s.", resolvedPath); Logger("cannot create file.", LEVEL_ERROR, SCREEN_YES);
Logger(str, LEVEL_ERROR, SCREEN_YES);
free(str);
return -1; return -1;
} }
close(fd); close(fd);
@@ -208,7 +202,7 @@ int CheckLegality(const char* filename)
fprintf(stderr, "Please check the write permission!\n"); fprintf(stderr, "Please check the write permission!\n");
return -1; return -1;
} }
} while (strcmp(dirname(buf), "/")); } while (strncmp(dirname(buf), "/", strlen(dirname(buf))));
return 0; return 0;
} }