From b232bb782605eb0c6b23aef5f7ea56fd5bd3b7fd Mon Sep 17 00:00:00 2001 From: Hardcore Sushi Date: Mon, 20 Dec 2021 12:38:05 +0100 Subject: [PATCH] Deep copy path when registering file handle --- file.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/file.go b/file.go index 2298b3e..0425186 100644 --- a/file.go +++ b/file.go @@ -37,7 +37,7 @@ func mangleOpenFlags(flags uint32) (newFlags int) { return newFlags } -func (volume *Volume) registerFileHandle(file File) int { +func (volume *Volume) registerFileHandle(fd int, cName, path string) int { handleID := -1 c := 0 for handleID == -1 { @@ -47,7 +47,7 @@ func (volume *Volume) registerFileHandle(file File) int { } c++ } - volume.file_handles[handleID] = file + volume.file_handles[handleID] = File{os.NewFile(uintptr(fd), cName), string([]byte(path[:]))}//pathCopy.String()} return handleID } @@ -381,7 +381,7 @@ func gcf_open_read_mode(sessionID int, path string) int { if err != nil { return -1 } - return volume.registerFileHandle(File{os.NewFile(uintptr(fd), cName), path}) + return volume.registerFileHandle(fd, cName, path) } //export gcf_open_write_mode @@ -414,7 +414,7 @@ func gcf_open_write_mode(sessionID int, path string, mode uint32) int { if err != nil { return -1 } - return volume.registerFileHandle(File{os.NewFile(uintptr(fd), cName), path}) + return volume.registerFileHandle(fd, cName, path) } //export gcf_truncate