From 307e7f89830403ff0b30d3fbd392c7e0d3ef6407 Mon Sep 17 00:00:00 2001 From: Avi Deitcher Date: Fri, 11 Apr 2025 15:06:46 +0300 Subject: [PATCH] ensure that smb filenames do not start with slash when removing or pulling Signed-off-by: Avi Deitcher --- pkg/storage/smb/smb.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkg/storage/smb/smb.go b/pkg/storage/smb/smb.go index 356a923..0933991 100644 --- a/pkg/storage/smb/smb.go +++ b/pkg/storage/smb/smb.go @@ -58,6 +58,7 @@ func (s *SMB) Pull(ctx context.Context, source, target string, logger *log.Entry ) err = s.exec(s.url, func(fs *smb2.Share, sharepath string) error { smbFilename := fmt.Sprintf("%s%c%s", sharepath, smb2.PathSeparator, filepath.Base(strings.ReplaceAll(target, ":", "-"))) + smbFilename = strings.TrimPrefix(smbFilename, fmt.Sprintf("%c", smb2.PathSeparator)) to, err := os.Create(target) if err != nil { @@ -126,6 +127,7 @@ func (s *SMB) ReadDir(ctx context.Context, dirname string, logger *log.Entry) ([ func (s *SMB) Remove(ctx context.Context, target string, logger *log.Entry) error { return s.exec(s.url, func(fs *smb2.Share, sharepath string) error { smbFilename := fmt.Sprintf("%s%c%s", sharepath, smb2.PathSeparator, filepath.Base(strings.ReplaceAll(target, ":", "-"))) + smbFilename = strings.TrimPrefix(smbFilename, fmt.Sprintf("%c", smb2.PathSeparator)) return fs.Remove(smbFilename) }) }