From 573601b19c8ae582adcd1a7c4b8c0ebfa4295aed Mon Sep 17 00:00:00 2001 From: Rose Hogenson Date: Sat, 4 Oct 2025 21:40:41 -0700 Subject: Correctly handle errors in the reader --- internal/cryptoutil/oae2.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'internal/cryptoutil/oae2.go') diff --git a/internal/cryptoutil/oae2.go b/internal/cryptoutil/oae2.go index be4f1a9..a230c06 100644 --- a/internal/cryptoutil/oae2.go +++ b/internal/cryptoutil/oae2.go @@ -306,7 +306,7 @@ func (k EncryptionKey) NewReader(r io.Reader, options ...Option) *DecryptingRead o(&opts) } return &DecryptingReader{ - r: bufio.NewReaderSize(r, 1), + r: bufio.NewReaderSize(r, headerSize), oae2: oae2{ key: k, additionalData: opts.additionalData, @@ -316,13 +316,14 @@ func (k EncryptionKey) NewReader(r io.Reader, options ...Option) *DecryptingRead } func (r *DecryptingReader) initialize() error { - header := make([]byte, headerSize) - if _, err := io.ReadFull(r.r, header); err != nil { + header, err := r.r.Peek(headerSize) + if err != nil { return err } if err := r.oae2.initialize(header); err != nil { return err } + r.r.Discard(len(header)) r.buf = *bytes.NewBuffer(make([]byte, 0, r.segmentSize+aeadOverhead)) r.initialized = true return nil -- cgit v1.3.1