Merge pull request #552 from benagricola/fix-connection-leak
Explicitly Close() obj after ReadFull()
This commit is contained in:
commit
a9729eeb1b
1 changed files with 11 additions and 1 deletions
|
@ -97,7 +97,17 @@ func (be s3) Load(h backend.Handle, p []byte, off int64) (int, error) {
|
||||||
defer func() {
|
defer func() {
|
||||||
be.connChan <- struct{}{}
|
be.connChan <- struct{}{}
|
||||||
}()
|
}()
|
||||||
return io.ReadFull(obj, p)
|
|
||||||
|
// This may not read the whole object, so ensure object
|
||||||
|
// is closed to avoid duplicate connections.
|
||||||
|
n, err := io.ReadFull(obj, p)
|
||||||
|
if err != nil {
|
||||||
|
obj.Close()
|
||||||
|
} else {
|
||||||
|
err = obj.Close()
|
||||||
|
}
|
||||||
|
return n, err
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Save stores data in the backend at the handle.
|
// Save stores data in the backend at the handle.
|
||||||
|
|
Loading…
Reference in a new issue