diff --git a/v2/go.sum b/v2/go.sum index dac82e5ef..3df87760e 100644 --- a/v2/go.sum +++ b/v2/go.sum @@ -595,8 +595,6 @@ github.com/projectdiscovery/fileutil v0.0.0-20210914153648-31f843feaad4/go.mod h github.com/projectdiscovery/fileutil v0.0.0-20210926202739-6050d0acf73c/go.mod h1:U+QCpQnX8o2N2w0VUGyAzjM3yBAe4BKedVElxiImsx0= github.com/projectdiscovery/fileutil v0.0.0-20210928100737-cab279c5d4b5 h1:2dbm7UhrAKnccZttr78CAmG768sSCd+MBn4ayLVDeqA= github.com/projectdiscovery/fileutil v0.0.0-20210928100737-cab279c5d4b5/go.mod h1:U+QCpQnX8o2N2w0VUGyAzjM3yBAe4BKedVElxiImsx0= -github.com/projectdiscovery/folderutil v0.0.0-20211206102047-d6bf8e7490ff h1:ci7/Pq9xvrVFb94jeARYb45oSzs85NWG+Fxp/kjgHVc= -github.com/projectdiscovery/folderutil v0.0.0-20211206102047-d6bf8e7490ff/go.mod h1:BMqXH4jNGByVdE2iLtKvc/6XStaiZRuCIaKv1vw9PnI= github.com/projectdiscovery/folderutil v0.0.0-20211206150108-b4e7ea80f36e h1:RJJuYyuwskYtzZi2gziy6SE/b7saWEzyskaA252E0VY= github.com/projectdiscovery/folderutil v0.0.0-20211206150108-b4e7ea80f36e/go.mod h1:BMqXH4jNGByVdE2iLtKvc/6XStaiZRuCIaKv1vw9PnI= github.com/projectdiscovery/goflags v0.0.7/go.mod h1:Jjwsf4eEBPXDSQI2Y+6fd3dBumJv/J1U0nmpM+hy2YY= diff --git a/v2/internal/runner/update.go b/v2/internal/runner/update.go index 99d94cc88..1cf4ccf5b 100644 --- a/v2/internal/runner/update.go +++ b/v2/internal/runner/update.go @@ -24,6 +24,7 @@ import ( "github.com/olekukonko/tablewriter" "github.com/pkg/errors" + "github.com/projectdiscovery/folderutil" "github.com/projectdiscovery/gologger" "github.com/projectdiscovery/nuclei-updatecheck-api/client" "github.com/projectdiscovery/nuclei/v2/pkg/catalog/config" @@ -401,8 +402,17 @@ func calculateTemplateAbsolutePath(zipFilePath, configuredTemplateDirectory stri return "", true, nil } - directoryPathChunks := strings.Split(directory, string(os.PathSeparator)) - relativeDirectoryPathWithoutZipRoot := filepath.Join(directoryPathChunks[1:]...) + var ( + directoryPathChunks []string + relativeDirectoryPathWithoutZipRoot string + ) + if folderutil.IsUnixOS() { + directoryPathChunks = strings.Split(directory, string(os.PathSeparator)) + } else if folderutil.IsWindowsOS() { + pathInfo, _ := folderutil.NewPathInfo(directory) + directoryPathChunks = pathInfo.Parts + } + relativeDirectoryPathWithoutZipRoot = filepath.Join(directoryPathChunks[1:]...) if strings.HasPrefix(relativeDirectoryPathWithoutZipRoot, ".") { return "", true, nil diff --git a/v2/pkg/protocols/common/generators/validate.go b/v2/pkg/protocols/common/generators/validate.go index 5b9ca44ab..7bdea4c84 100644 --- a/v2/pkg/protocols/common/generators/validate.go +++ b/v2/pkg/protocols/common/generators/validate.go @@ -28,21 +28,10 @@ func (g *PayloadGenerator) validate(payloads map[string]interface{}, templatePat changed := false - var dir string - if folderutil.IsWindowsOS() { - dir, payloadType = filepath.Split(filepath.Join(templatePath, payloadType)) - } else { - dir, _ = filepath.Split(templatePath) - } + dir, _ := filepath.Split(templatePath) + templatePathInfo, _ := folderutil.NewPathInfo(dir) + payloadPathsToProbe, _ := templatePathInfo.MeshWith(payloadType) - templatePathInfo, err := folderutil.NewPathInfo(dir) - if err != nil { - return err - } - payloadPathsToProbe, err := templatePathInfo.MeshWith(payloadType) - if err != nil { - return err - } for _, payloadPath := range payloadPathsToProbe { if fileExists(payloadPath) { payloads[name] = payloadPath