|
|
@@ -7,6 +7,7 @@ import (
|
|
|
"os"
|
|
|
"path/filepath"
|
|
|
"strings"
|
|
|
+ "time"
|
|
|
|
|
|
"github.com/h2non/filetype"
|
|
|
|
|
|
@@ -90,6 +91,7 @@ func (d *Detector) DetectFiles(paths <-chan sources.ScanTarget) ([]report.Findin
|
|
|
if pa.Symlink != "" {
|
|
|
fragment.SymlinkFile = pa.Symlink
|
|
|
}
|
|
|
+
|
|
|
if isWindows {
|
|
|
fragment.FilePath = filepath.ToSlash(pa.Path)
|
|
|
fragment.SymlinkFile = filepath.ToSlash(fragment.SymlinkFile)
|
|
|
@@ -98,12 +100,19 @@ func (d *Detector) DetectFiles(paths <-chan sources.ScanTarget) ([]report.Findin
|
|
|
fragment.FilePath = pa.Path
|
|
|
}
|
|
|
|
|
|
+ timer := time.AfterFunc(SlowWarningThreshold, func() {
|
|
|
+ logger.Debug().Msgf("Taking longer than %s to inspect fragment", SlowWarningThreshold.String())
|
|
|
+ })
|
|
|
for _, finding := range d.Detect(fragment) {
|
|
|
// need to add 1 since line counting starts at 1
|
|
|
finding.StartLine += (totalLines - linesInChunk) + 1
|
|
|
finding.EndLine += (totalLines - linesInChunk) + 1
|
|
|
d.AddFinding(finding)
|
|
|
}
|
|
|
+ if timer != nil {
|
|
|
+ timer.Stop()
|
|
|
+ timer = nil
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if err != nil {
|