From 8a32be982bf54f7f0257af59f33e8dc75b0e4dd9 Mon Sep 17 00:00:00 2001 From: Isaque Pinheiro Date: Sat, 4 Jul 2026 10:53:42 -0300 Subject: [PATCH] fix(pkgmanager): prevent nil pointer dereference on malformed boss.json (issues #177, #178) --- utils/librarypath/librarypath.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/utils/librarypath/librarypath.go b/utils/librarypath/librarypath.go index 4e4abe2d..acc30d73 100644 --- a/utils/librarypath/librarypath.go +++ b/utils/librarypath/librarypath.go @@ -75,8 +75,8 @@ func processBrowsingPath( ) []string { var packagePath = filepath.Join(basePath, value.Name(), consts.FilePackage) if _, err := os.Stat(packagePath); !os.IsNotExist(err) { - other, _ := pkgmanager.LoadPackageOther(packagePath) - if other.BrowsingPath != "" { + other, err := pkgmanager.LoadPackageOther(packagePath) + if err == nil && other != nil && other.BrowsingPath != "" { dir := filepath.Join(basePath, value.Name(), other.BrowsingPath) paths = getNewBrowsingPathsFromDir(dir, paths, fullPath, rootPath) if setReadOnly { @@ -116,8 +116,12 @@ func GetNewPaths(paths []string, fullPath bool, rootPath string) []string { for _, value := range matches { var packagePath = filepath.Join(path, value.Name(), consts.FilePackage) if _, err := os.Stat(packagePath); !os.IsNotExist(err) { - other, _ := pkgmanager.LoadPackageOther(packagePath) - paths = getNewPathsFromDir(filepath.Join(path, value.Name(), other.MainSrc), paths, fullPath, rootPath) + other, err := pkgmanager.LoadPackageOther(packagePath) + if err == nil && other != nil { + paths = getNewPathsFromDir(filepath.Join(path, value.Name(), other.MainSrc), paths, fullPath, rootPath) + } else { + paths = getNewPathsFromDir(filepath.Join(path, value.Name()), paths, fullPath, rootPath) + } } else { paths = getNewPathsFromDir(filepath.Join(path, value.Name()), paths, fullPath, rootPath) }