Skip to content

Commit bf6e48c

Browse files
committed
chunked: extract blob validation into standalone function
extract the blob checksum validation logic from decodeAndValidateBlob into a separate function. Signed-off-by: Giuseppe Scrivano <[email protected]>
1 parent f01643a commit bf6e48c

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

pkg/chunked/compression_linux.go

+11-4
Original file line numberDiff line numberDiff line change
@@ -433,19 +433,26 @@ func ensureFileMetadataAttributesMatch(a, b *minimal.FileMetadata) error {
433433
return nil
434434
}
435435

436-
func decodeAndValidateBlob(blob []byte, lengthUncompressed uint64, expectedCompressedChecksum string) ([]byte, error) {
436+
func validateBlob(blob []byte, expectedCompressedChecksum string) error {
437437
d, err := digest.Parse(expectedCompressedChecksum)
438438
if err != nil {
439-
return nil, fmt.Errorf("invalid digest %q: %w", expectedCompressedChecksum, err)
439+
return fmt.Errorf("invalid digest %q: %w", expectedCompressedChecksum, err)
440440
}
441441

442442
blobDigester := d.Algorithm().Digester()
443443
blobChecksum := blobDigester.Hash()
444444
if _, err := blobChecksum.Write(blob); err != nil {
445-
return nil, err
445+
return err
446446
}
447447
if blobDigester.Digest() != d {
448-
return nil, fmt.Errorf("invalid blob checksum, expected checksum %s, got %s", d, blobDigester.Digest())
448+
return fmt.Errorf("invalid blob checksum, expected checksum %s, got %s", d, blobDigester.Digest())
449+
}
450+
return nil
451+
}
452+
453+
func decodeAndValidateBlob(blob []byte, lengthUncompressed uint64, expectedCompressedChecksum string) ([]byte, error) {
454+
if err := validateBlob(blob, expectedCompressedChecksum); err != nil {
455+
return nil, err
449456
}
450457

451458
decoder, err := zstd.NewReader(nil) //nolint:contextcheck

0 commit comments

Comments
 (0)