]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/cgo: avoid leaking fds
authorDave Cheney <dave@cheney.net>
Tue, 18 Jun 2013 13:20:17 +0000 (23:20 +1000)
committerDave Cheney <dave@cheney.net>
Tue, 18 Jun 2013 13:20:17 +0000 (23:20 +1000)
Fixes #5714.

R=golang-dev, iant
CC=golang-dev
https://golang.org/cl/10386043

src/cmd/cgo/gcc.go

index bc7a6472f38675c79beb9a87ed076fd44c172e73..8ca680abc91408626ab756e18f5734ea7db01c36 100644 (file)
@@ -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)