From e63398c853c32f336993306699be81288186a87a Mon Sep 17 00:00:00 2001 From: EnumDev Date: Fri, 1 Aug 2025 19:19:08 +0300 Subject: [PATCH] Set correct ownership during package extraction --- src/bpmlib/packages.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/bpmlib/packages.go b/src/bpmlib/packages.go index 2ac878d..fd4a368 100644 --- a/src/bpmlib/packages.go +++ b/src/bpmlib/packages.go @@ -596,6 +596,11 @@ func extractPackage(bpmpkg *BPMPackage, verbose bool, filename, rootDir string) return err } + err = os.Chown(extractFilename, header.Uid, header.Gid) + if err != nil { + return err + } + // Using syscall instead of os.Chmod because it seems to strip the setuid, setgid and sticky bits err := syscall.Chmod(extractFilename, uint32(header.Mode)) if err != nil { @@ -647,6 +652,11 @@ func extractPackage(bpmpkg *BPMPackage, verbose bool, filename, rootDir string) return err } + err = os.Chown(extractFilename, header.Uid, header.Gid) + if err != nil { + return err + } + // Using syscall instead of os.Chmod because it seems to strip the setuid, setgid and sticky bits err = syscall.Chmod(extractFilename, uint32(header.Mode)) if err != nil {