From 661bb5df65212747b07478ae837479510c1abe90 Mon Sep 17 00:00:00 2001 From: yzqzss Date: Sun, 26 May 2024 01:39:18 +0800 Subject: [PATCH] safer GetProject() --- projects.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/projects.go b/projects.go index 587f1dd..c1afb91 100644 --- a/projects.go +++ b/projects.go @@ -4,6 +4,7 @@ import ( "encoding/json" "fmt" "os" + "path/filepath" ) type Meta struct { @@ -58,10 +59,15 @@ func GetProjectsName() []string { } func GetProject(project_name string) *Project { - project_file_path := fmt.Sprintf("%s/%s/%s", PROJECTS_DIR, project_name, PROJECT_FILE) - project_data, _ := os.ReadFile(project_file_path) + // project_file_path := fmt.Sprintf("%s/%s/%s", PROJECTS_DIR, project_name, PROJECT_FILE) + project_file_path_safe, err := filepath.Abs(filepath.Join(PROJECTS_DIR, project_name, PROJECT_FILE)) + if err != nil { + return nil + } + project_data, _ := os.ReadFile(project_file_path_safe) project := Project{} - err := json.Unmarshal(project_data, &project) + + err = json.Unmarshal(project_data, &project) if err != nil { return nil }