@@ -215,7 +215,7 @@ type Header struct {
215215
216216func (header * Header ) Length () int {
217217 if header .HeaderFieldsV3 != nil {
218- return int (header .HeaderFieldsV3 . HeaderLength )
218+ return int (header .HeaderLength )
219219 }
220220 return 72
221221}
@@ -308,7 +308,7 @@ var (
308308
309309// Readable returns nil if the image is readable, otherwise returns an error.
310310func (header * Header ) Readable () error {
311- if string (header .HeaderFieldsV2 . Magic [:]) != Magic {
311+ if string (header .Magic [:]) != Magic {
312312 return ErrNotQcow2
313313 }
314314 if header .Version < 2 {
@@ -351,10 +351,10 @@ func readHeader(r io.Reader) (*Header, error) {
351351 if err := binary .Read (r , binary .BigEndian , & header .HeaderFieldsV2 ); err != nil {
352352 return nil , fmt .Errorf ("%w (%v)" , ErrNotQcow2 , err )
353353 }
354- if string (header .HeaderFieldsV2 . Magic [:]) != Magic {
354+ if string (header .Magic [:]) != Magic {
355355 return nil , fmt .Errorf ("%w (the image lacks magic %q)" , ErrNotQcow2 , Magic )
356356 }
357- switch header .HeaderFieldsV2 . Version {
357+ switch header .Version {
358358 case 0 , 1 :
359359 return nil , fmt .Errorf ("%w (expected version >= 2, got %d)" , ErrNotQcow2 , header .HeaderFieldsV2 )
360360 case 2 :
@@ -368,7 +368,7 @@ func readHeader(r io.Reader) (*Header, error) {
368368 header .HeaderFieldsV3 = & v3
369369
370370 var additional HeaderFieldsAdditional
371- if header .HeaderFieldsV3 . HeaderLength > 104 {
371+ if header .HeaderLength > 104 {
372372 if err := binary .Read (r , binary .BigEndian , & additional ); err != nil {
373373 return nil , err
374374 }
@@ -567,7 +567,7 @@ func Open(ra io.ReaderAt, openWithType image.OpenWithType) (*Qcow2, error) {
567567 img .errUnreadable = img .Header .Readable () // cache
568568 if img .errUnreadable == nil {
569569 // Load cluster size
570- img .clusterSize = 1 << img .Header . ClusterBits
570+ img .clusterSize = 1 << img .ClusterBits
571571
572572 // Load header extensions
573573 img .HeaderExtensions , err = readHeaderExtensions (ra , img .Header )
@@ -594,15 +594,15 @@ func Open(ra io.ReaderAt, openWithType image.OpenWithType) (*Qcow2, error) {
594594 }
595595
596596 // Load L1 table
597- img .l1Table , err = readL1Table (ra , img .Header . L1TableOffset , img . Header .L1Size )
597+ img .l1Table , err = readL1Table (ra , img .L1TableOffset , img .L1Size )
598598 if err != nil {
599599 return img , fmt .Errorf ("failed to read L1 table: %w" , err )
600600 }
601601
602602 // Load decompressor
603603 var compressionType CompressionType
604- if img .Header . HeaderFieldsAdditional != nil {
605- compressionType = img .Header . HeaderFieldsAdditional . CompressionType
604+ if img .HeaderFieldsAdditional != nil {
605+ compressionType = img .CompressionType
606606 }
607607 img .decompressor = decompressors [compressionType ]
608608 if img .decompressor == nil {
@@ -611,13 +611,13 @@ func Open(ra io.ReaderAt, openWithType image.OpenWithType) (*Qcow2, error) {
611611 }
612612
613613 // Load backing file
614- if img .Header . BackingFileOffset != 0 {
615- if img .Header . BackingFileSize > 1023 {
616- img .errUnreadable = fmt .Errorf ("expected backing file offset <= 1023, got %d" , img .Header . BackingFileSize )
614+ if img .BackingFileOffset != 0 {
615+ if img .BackingFileSize > 1023 {
616+ img .errUnreadable = fmt .Errorf ("expected backing file offset <= 1023, got %d" , img .BackingFileSize )
617617 return img , nil
618618 }
619- backingFileNameB := make ([]byte , img .Header . BackingFileSize )
620- if _ , err = ra .ReadAt (backingFileNameB , int64 (img .Header . BackingFileOffset )); err != nil {
619+ backingFileNameB := make ([]byte , img .BackingFileSize )
620+ if _ , err = ra .ReadAt (backingFileNameB , int64 (img .BackingFileOffset )); err != nil {
621621 img .errUnreadable = fmt .Errorf ("failed to read backing file name: %w" , err )
622622 return img , nil
623623 }
@@ -691,7 +691,7 @@ func (img *Qcow2) Readable() error {
691691}
692692
693693func (img * Qcow2 ) extendedL2 () bool {
694- return img .Header . HeaderFieldsV3 != nil && img . Header . HeaderFieldsV3 .IncompatibleFeatures & (1 << IncompatibleFeaturesExtendedL2EntriesBit ) != 0
694+ return img .HeaderFieldsV3 != nil && img .IncompatibleFeatures & (1 << IncompatibleFeaturesExtendedL2EntriesBit ) != 0
695695}
696696
697697func (img * Qcow2 ) getL2Table (l1Entry l1TableEntry ) ([]l2TableEntry , error ) {
@@ -920,18 +920,18 @@ func (img *Qcow2) readAtAlignedStandardExtendedL2(p []byte, off int64, desc stan
920920}
921921
922922func (img * Qcow2 ) readAtAlignedCompressed (p []byte , off int64 , desc compressedClusterDescriptor ) (int , error ) {
923- hostClusterOffset := desc .hostClusterOffset (int (img .Header . ClusterBits ))
923+ hostClusterOffset := desc .hostClusterOffset (int (img .ClusterBits ))
924924 if hostClusterOffset == 0 {
925925 return 0 , fmt .Errorf ("invalid host cluster offset 0 for virtual offset %d" , off )
926926 }
927- additionalSectors := desc .additionalSectors (int (img .Header . ClusterBits ))
927+ additionalSectors := desc .additionalSectors (int (img .ClusterBits ))
928928 compressedSize := img .clusterSize + 512 * additionalSectors
929929 compressedSR := io .NewSectionReader (img .ra , int64 (hostClusterOffset ), int64 (compressedSize ))
930930 zr , err := img .decompressor (compressedSR )
931931 if err != nil {
932932 return 0 , fmt .Errorf ("could not open the decompressor: %w" , err )
933933 }
934- defer zr .Close ()
934+ defer zr .Close () //nolint:errcheck
935935 if discard := off % int64 (img .clusterSize ); discard != 0 {
936936 if _ , err := io .CopyN (io .Discard , zr , discard ); err != nil {
937937 return 0 , err
0 commit comments