Jelajahi Sumber

Close pipe in chrootarchive.invokeUnpack when cmd.Start()/json.NewEncoder failed.

Signed-off-by: y00316549 <yangshukui@huawei.com>
y00316549 7 tahun lalu
induk
melakukan
f5f8f00860
1 mengubah file dengan 2 tambahan dan 0 penghapusan
  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()