Kaynağa Gözat

Merge pull request #33713 from x1022as/error_fd

fd leak and error handling
Aaron Lehmann 8 yıl önce
ebeveyn
işleme
3be2273d03

+ 6 - 2
daemon/logger/jsonfilelog/multireader/multireader.go

@@ -46,7 +46,9 @@ func (r *multiReadSeeker) Seek(offset int64, whence int) (int64, error) {
 			rdrOffset := offset - tmpOffset
 			idx := i
 
-			rdr.Seek(rdrOffset, os.SEEK_SET)
+			if _, err := rdr.Seek(rdrOffset, os.SEEK_SET); err != nil {
+				return -1, err
+			}
 			// make sure all following readers are at 0
 			for _, rdr := range r.readers[i+1:] {
 				rdr.Seek(0, os.SEEK_SET)
@@ -67,7 +69,9 @@ func (r *multiReadSeeker) Seek(offset int64, whence int) (int64, error) {
 			}
 			tmpOffset += s
 		}
-		r.Seek(tmpOffset+offset, os.SEEK_SET)
+		if _, err := r.Seek(tmpOffset+offset, os.SEEK_SET); err != nil {
+			return -1, err
+		}
 		return tmpOffset + offset, nil
 	case os.SEEK_CUR:
 		if r.pos == nil {

+ 1 - 0
layer/filestore.go

@@ -226,6 +226,7 @@ func (fms *fileMetadataStore) TarSplitReader(layer ChainID) (io.ReadCloser, erro
 	}
 	f, err := gzip.NewReader(fz)
 	if err != nil {
+		fz.Close()
 		return nil, err
 	}