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

View File

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

View File

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