ringlogger: account for ERROR_ALREADY_EXISTS returns

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
Jason A. Donenfeld
2021-03-05 16:05:02 -07:00
parent 31e0fd9fbe
commit bd160892d9
2 changed files with 3 additions and 3 deletions

View File

@@ -27,7 +27,7 @@ func DumpTo(out io.Writer, notSystem bool) error {
}
defer file.Close()
mapping, err := windows.CreateFileMapping(windows.Handle(file.Fd()), nil, windows.PAGE_READONLY, 0, 0, nil)
if err != nil {
if err != nil && err != windows.ERROR_ALREADY_EXISTS {
return err
}
rl, err := newRingloggerFromMappingHandle(mapping, "DMP", windows.FILE_MAP_READ)

View File

@@ -58,7 +58,7 @@ func NewRinglogger(filename string, tag string) (*Ringlogger, error) {
return nil, err
}
mapping, err := windows.CreateFileMapping(windows.Handle(file.Fd()), nil, windows.PAGE_READWRITE, 0, 0, nil)
if err != nil {
if err != nil && err != windows.ERROR_ALREADY_EXISTS {
return nil, err
}
rl, err := newRingloggerFromMappingHandle(mapping, tag, windows.FILE_MAP_WRITE)
@@ -237,7 +237,7 @@ func (rl *Ringlogger) Close() error {
func (rl *Ringlogger) ExportInheritableMappingHandle() (handleToClose windows.Handle, err error) {
handleToClose, err = windows.CreateFileMapping(windows.Handle(rl.file.Fd()), nil, windows.PAGE_READONLY, 0, 0, nil)
if err != nil {
if err != nil && err != windows.ERROR_ALREADY_EXISTS {
return
}
err = windows.SetHandleInformation(handleToClose, windows.HANDLE_FLAG_INHERIT, windows.HANDLE_FLAG_INHERIT)