Merge pull request #7521 from iyear/fix-defer
Fix incorrect defer usage and refactor judgement
This commit is contained in:
		| @@ -345,28 +345,33 @@ func (r *dockerResolver) Resolve(ctx context.Context, ref string) (string, ocisp | ||||
| 				if err != nil { | ||||
| 					return "", ocispec.Descriptor{}, err | ||||
| 				} | ||||
| 				defer resp.Body.Close() | ||||
|  | ||||
| 				bodyReader := countingReader{reader: resp.Body} | ||||
|  | ||||
| 				contentType = getManifestMediaType(resp) | ||||
| 				if dgst == "" { | ||||
| 				err = func() error { | ||||
| 					defer resp.Body.Close() | ||||
| 					if dgst != "" { | ||||
| 						_, err = io.Copy(io.Discard, &bodyReader) | ||||
| 						return err | ||||
| 					} | ||||
|  | ||||
| 					if contentType == images.MediaTypeDockerSchema1Manifest { | ||||
| 						b, err := schema1.ReadStripSignature(&bodyReader) | ||||
| 						if err != nil { | ||||
| 							return "", ocispec.Descriptor{}, err | ||||
| 							return err | ||||
| 						} | ||||
|  | ||||
| 						dgst = digest.FromBytes(b) | ||||
| 					} else { | ||||
| 						return nil | ||||
| 					} | ||||
|  | ||||
| 					dgst, err = digest.FromReader(&bodyReader) | ||||
| 					return err | ||||
| 				}() | ||||
| 				if err != nil { | ||||
| 					return "", ocispec.Descriptor{}, err | ||||
| 				} | ||||
| 					} | ||||
| 				} else if _, err := io.Copy(io.Discard, &bodyReader); err != nil { | ||||
| 					return "", ocispec.Descriptor{}, err | ||||
| 				} | ||||
| 				size = bodyReader.bytesRead | ||||
| 			} | ||||
| 			// Prevent resolving to excessively large manifests | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Derek McGowan
					Derek McGowan