From: Dave Cheney Date: Tue, 18 Jun 2013 13:20:17 +0000 (+1000) Subject: cmd/cgo: avoid leaking fds X-Git-Tag: go1.2rc2~1223 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=f9c22f7e7804ba4fcee37c75c3ba18788624b7b4;p=gostls13.git cmd/cgo: avoid leaking fds Fixes #5714. R=golang-dev, iant CC=golang-dev https://golang.org/cl/10386043 --- diff --git a/src/cmd/cgo/gcc.go b/src/cmd/cgo/gcc.go index bc7a6472f3..8ca680abc9 100644 --- a/src/cmd/cgo/gcc.go +++ b/src/cmd/cgo/gcc.go @@ -716,6 +716,7 @@ func (p *Package) gccDebug(stdin []byte) (*dwarf.Data, binary.ByteOrder, []byte) runGcc(stdin, p.gccCmd()) if f, err := macho.Open(gccTmp()); err == nil { + defer f.Close() d, err := f.DWARF() if err != nil { fatalf("cannot load DWARF output from %s: %v", gccTmp(), err) @@ -742,6 +743,7 @@ func (p *Package) gccDebug(stdin []byte) (*dwarf.Data, binary.ByteOrder, []byte) } if f, err := elf.Open(gccTmp()); err == nil { + defer f.Close() d, err := f.DWARF() if err != nil { fatalf("cannot load DWARF output from %s: %v", gccTmp(), err) @@ -768,6 +770,7 @@ func (p *Package) gccDebug(stdin []byte) (*dwarf.Data, binary.ByteOrder, []byte) } if f, err := pe.Open(gccTmp()); err == nil { + defer f.Close() d, err := f.DWARF() if err != nil { fatalf("cannot load DWARF output from %s: %v", gccTmp(), err)