Browse Source

Merge pull request #35589 from keloyang/close-fd

Close pipe in chrootarchive.invokeUnpack when cmd.Start()/json.NewEncoder failed
Tõnis Tiigi 7 years ago
parent
commit
cefb33700c
1 changed files with 2 additions and 0 deletions
  1. 2 0
      pkg/chrootarchive/archive_unix.go

+ 2 - 0
pkg/chrootarchive/archive_unix.go

@@ -66,10 +66,12 @@ func invokeUnpack(decompressedArchive io.Reader, dest string, options *archive.T
 	cmd.Stderr = output
 
 	if err := cmd.Start(); err != nil {
+		w.Close()
 		return fmt.Errorf("Untar error on re-exec cmd: %v", err)
 	}
 	//write the options to the pipe for the untar exec to read
 	if err := json.NewEncoder(w).Encode(options); err != nil {
+		w.Close()
 		return fmt.Errorf("Untar json encode to pipe failed: %v", err)
 	}
 	w.Close()