From e4b6d443fca2e612c6d9ef82c3721f07ff372528 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jarkko=20P=C3=B6yry?= Date: Sun, 21 Dec 2025 21:55:02 +0200 Subject: [PATCH] tsdb: fix handle leak on mmap failure on MS Windows (#17310) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jarkko Pöyry --- tsdb/fileutil/mmap_windows.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tsdb/fileutil/mmap_windows.go b/tsdb/fileutil/mmap_windows.go index b942264123..5704b3b96d 100644 --- a/tsdb/fileutil/mmap_windows.go +++ b/tsdb/fileutil/mmap_windows.go @@ -27,14 +27,15 @@ func mmap(f *os.File, size int) ([]byte, error) { } addr, errno := syscall.MapViewOfFile(h, syscall.FILE_MAP_READ, 0, 0, uintptr(size)) - if addr == 0 { - return nil, os.NewSyscallError("MapViewOfFile", errno) - } if err := syscall.CloseHandle(syscall.Handle(h)); err != nil { return nil, os.NewSyscallError("CloseHandle", err) } + if addr == 0 { + return nil, os.NewSyscallError("MapViewOfFile", errno) + } + return (*[maxMapSize]byte)(unsafe.Pointer(addr))[:size], nil }