aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Unterwurzacher2016-11-06 14:09:34 +0100
committerJakob Unterwurzacher2016-11-06 14:09:34 +0100
commitdf1e3a10c45cefb393a350f75ebf3fbb8117ef2f (patch)
tree23fcebf5021d1a2e662846c7ef0813cda29f169e
parentd15122d3d6b67d42617ed9950ce5273d0dba64fd (diff)
nametransform: nicer error message on empty gocryptfs.diriv
Old: Nov 06 13:34:38 brikett gocryptfs[16228]: ReadDirIVAt: Read failed: EOF Nov 06 13:34:38 brikett gocryptfs[16228]: go-fuse: can't convert error type: EOF New: Nov 06 14:08:43 brikett gocryptfs[17361]: ReadDirIVAt: wanted 16 bytes, got 0. Returning EINVAL.
-rw-r--r--internal/nametransform/diriv.go5
1 files changed, 3 insertions, 2 deletions
diff --git a/internal/nametransform/diriv.go b/internal/nametransform/diriv.go
index f8734db..72c8e7c 100644
--- a/internal/nametransform/diriv.go
+++ b/internal/nametransform/diriv.go
@@ -1,6 +1,7 @@
package nametransform
import (
+ "io"
"io/ioutil"
"os"
"path/filepath"
@@ -52,13 +53,13 @@ func fdReadDirIV(fd *os.File) (iv []byte, err error) {
// make the buffer 1 byte bigger than necessary.
iv = make([]byte, DirIVLen+1)
n, err := fd.Read(iv)
- if err != nil {
+ if err != nil && err != io.EOF {
tlog.Warn.Printf("ReadDirIVAt: Read failed: %v", err)
return nil, err
}
iv = iv[0:n]
if len(iv) != DirIVLen {
- tlog.Warn.Printf("ReadDirIVAt: wanted %d bytes, got %d", DirIVLen, len(iv))
+ tlog.Warn.Printf("ReadDirIVAt: wanted %d bytes, got %d. Returning EINVAL.", DirIVLen, len(iv))
return nil, syscall.EINVAL
}
return iv, nil