diff options
| author | Jakob Unterwurzacher | 2016-10-28 20:05:57 +0200 | 
|---|---|---|
| committer | Jakob Unterwurzacher | 2016-10-28 21:18:36 +0200 | 
| commit | 012152f3d1f111541f2fbb4c1e65c91243cd6bde (patch) | |
| tree | 453a9eb72bec16575f0dc5c8a8b45fa52d1107ca | |
| parent | 4cc64c2c9579283da6a997c425e986dfe014c56d (diff) | |
fusefrontend: I/O error instead of panic on all-zero nonce
Running xfstests generic/075 on tmpfs often triggered a panic
for what seems to be a tmpfs bug.
Quoting from the email to lkml,
http://www.spinics.net/lists/kernel/msg2370127.html :
	tmpfs seems to be incorrectly returning 0-bytes when reading from
	a file that is concurrently being truncated.
| -rw-r--r-- | internal/contentenc/content.go | 5 | 
1 files changed, 4 insertions, 1 deletions
| diff --git a/internal/contentenc/content.go b/internal/contentenc/content.go index dd3b77a..c42a844 100644 --- a/internal/contentenc/content.go +++ b/internal/contentenc/content.go @@ -113,7 +113,10 @@ func (be *ContentEnc) DecryptBlock(ciphertext []byte, blockNo uint64, fileID []b  	// Extract nonce  	nonce := ciphertext[:be.cryptoCore.IVLen]  	if bytes.Equal(nonce, be.allZeroNonce) { -		panic("Hit an all-zero nonce. This MUST NOT happen!") +		// Bug in tmpfs? +		// https://github.com/rfjakob/gocryptfs/issues/56 +		// http://www.spinics.net/lists/kernel/msg2370127.html +		return nil, errors.New("all-zero nonce")  	}  	ciphertextOrig := ciphertext  	ciphertext = ciphertext[be.cryptoCore.IVLen:] | 
