aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lu <chrislusf@users.noreply.github.com>2019-12-25 21:00:21 -0800
committerGitHub <noreply@github.com>2019-12-25 21:00:21 -0800
commit997f5ead9383da02e84ac12cfa013e4a17b9a7ae (patch)
treec711859af409ee8e2d28c47051f4c6e8d608a4fa
parentbcc3092255a6ed39d8f9b14781e0dd58fab90b3d (diff)
parent4cbb6fa1992f0ef4ab3d96772752a81ae2e12f90 (diff)
downloadseaweedfs-997f5ead9383da02e84ac12cfa013e4a17b9a7ae.tar.xz
seaweedfs-997f5ead9383da02e84ac12cfa013e4a17b9a7ae.zip
Merge pull request #1173 from divinerapier/master
feat: drains http body if buffer is too small
-rw-r--r--weed/util/http_util.go10
1 files changed, 9 insertions, 1 deletions
diff --git a/weed/util/http_util.go b/weed/util/http_util.go
index 025cdee7b..684b4d247 100644
--- a/weed/util/http_util.go
+++ b/weed/util/http_util.go
@@ -235,8 +235,16 @@ func ReadUrl(fileUrl string, offset int64, size int, buf []byte, isReadRange boo
if err != nil {
return n, err
}
+ if n == int64(len(buf)) {
+ break
+ }
}
-
+ // drains the response body to avoid memory leak
+ data, err := ioutil.ReadAll(reader)
+ if len(data) != 0 {
+ err = fmt.Errorf("buffer size is too small. remains %d", len(data))
+ }
+ return n, err
}
func ReadUrlAsStream(fileUrl string, offset int64, size int, fn func(data []byte)) (int64, error) {