projects
/
arvados.git
/ commitdiff
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
7a029b8
)
7329: Fix infinite loop in Compare when reading an empty file.
author
Tom Clegg <tom@curoverse.com>
Tue, 22 Sep 2015 16:01:25 +0000
(12:01 -0400)
committer
Tom Clegg <tom@curoverse.com>
Tue, 22 Sep 2015 16:01:25 +0000
(12:01 -0400)
refs #7329
services/keepstore/volume_unix.go
patch
|
blob
|
history
diff --git
a/services/keepstore/volume_unix.go
b/services/keepstore/volume_unix.go
index afae2796bc6aa613fa75b36b3b00092f1950d89e..6c0f5c4e978d995b5c9308f52d5d2414045d64fc 100644
(file)
--- a/
services/keepstore/volume_unix.go
+++ b/
services/keepstore/volume_unix.go
@@
-122,6
+122,13
@@
func (v *UnixVolume) Compare(loc string, expect []byte) error {
bufLen := 1 << 20
if int64(bufLen) > stat.Size() {
bufLen = int(stat.Size())
+ if bufLen < 1 {
+ // len(buf)==0 would prevent us from handling
+ // empty files the same way as non-empty
+ // files, because reading 0 bytes at a time
+ // never reaches EOF.
+ bufLen = 1
+ }
}
cmp := expect
buf := make([]byte, bufLen)