From 6f70927bccf7862d25e0094c8e7aed6c94a53ed3 Mon Sep 17 00:00:00 2001 From: Yoav Alon <65133955+yoav-orca@users.noreply.github.com> Date: Thu, 13 Mar 2025 20:39:57 +0200 Subject: [PATCH] fix(performance): reduce memory allocation in containsPath (#3730) Signed-off-by: Yoav Alon --- syft/internal/fileresolver/path_skipper.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/syft/internal/fileresolver/path_skipper.go b/syft/internal/fileresolver/path_skipper.go index 792099cff..a9d2929c7 100644 --- a/syft/internal/fileresolver/path_skipper.go +++ b/syft/internal/fileresolver/path_skipper.go @@ -143,7 +143,11 @@ func containsPath(p1, p2 string) bool { if p1Clean == p2Clean { return true } - return strings.HasPrefix(p1Clean, p2Clean+"/") + if !strings.HasPrefix(p1Clean, p2Clean) { + return false + } + // This is done to avoid allocation of a new string + return len(p1Clean) > len(p2Clean) && p1Clean[len(p2Clean)] == '/' } func simpleClean(p string) string {