Add nil-receiver awareness to all Reader/Writer

This commit is contained in:
Alexander Neumann
2015-05-01 17:13:03 +02:00
parent dbc41bb805
commit 98dc811536
5 changed files with 20 additions and 3 deletions

View File

@@ -30,7 +30,7 @@ func (d *decryptReader) free() {
}
func (d *decryptReader) Close() error {
if d.buf == nil {
if d == nil || d.buf == nil {
return nil
}
@@ -72,14 +72,15 @@ func DecryptFrom(ks *Key, rd io.Reader) (io.ReadCloser, error) {
buf := bytes.NewBuffer(getBuffer()[:0])
_, err := buf.ReadFrom(rd)
if err != nil {
return nil, err
return (*decryptReader)(nil), err
}
ciphertext := buf.Bytes()
ciphertext, err = Decrypt(ks, ciphertext, ciphertext)
if err != nil {
return nil, err
freeBuffer(ciphertext)
return (*decryptReader)(nil), err
}
return &decryptReader{buf: ciphertext, rd: bytes.NewReader(ciphertext)}, nil

View File

@@ -17,6 +17,10 @@ type encryptWriter struct {
}
func (e *encryptWriter) Close() error {
if e == nil {
return nil
}
if e.closed {
return errors.New("Close() called on already closed writer")
}