fix: resolve compile errors in phase 2 remediation
Some checks failed
Automated Container Build / build-and-push (push) Failing after 51s

This commit is contained in:
Elijah 2026-05-26 13:36:20 -07:00
parent a7f76e2e97
commit f69c6d825e
3 changed files with 15 additions and 1 deletions

View file

@ -1290,3 +1290,17 @@ func (h *FSHandler) CheckConflicts(c *fiber.Ctx) error {
return c.JSON(fiber.Map{"conflicts": conflicts})
}
// safeRemovePath ensures we never delete a base directory.
func safeRemovePath(baseDir, targetAbsPath string) error {
cleanBase := filepath.Clean(baseDir)
cleanTarget := filepath.Clean(targetAbsPath)
if cleanTarget == cleanBase || cleanTarget == "." || cleanTarget == "/" {
return fmt.Errorf("cannot remove base directory %s", baseDir)
}
// Ensure it's inside the baseDir
if !strings.HasPrefix(cleanTarget, cleanBase+string(os.PathSeparator)) {
return fmt.Errorf("path escapes base directory")
}
return os.RemoveAll(cleanTarget)
}

View file

@ -4,7 +4,6 @@ import (
"archive/zip"
"fmt"
"io"
"net/http"
"os"
"path/filepath"
"strings"

View file

@ -15,6 +15,7 @@ import (
"git.elijahkuntz.com/Elijah/drive/config"
"git.elijahkuntz.com/Elijah/drive/database"
"git.elijahkuntz.com/Elijah/drive/middleware"
"github.com/gofiber/fiber/v2"
"github.com/valyala/fasthttp/fasthttpadaptor"
"golang.org/x/net/webdav"