diff --git a/bitcask.go b/bitcask.go index 8427c66..625fb23 100644 --- a/bitcask.go +++ b/bitcask.go @@ -2,6 +2,7 @@ package bitcask import ( "fmt" + "hash/crc32" "io" "io/ioutil" "os" @@ -61,6 +62,11 @@ func (b *Bitcask) Get(key string) ([]byte, error) { return nil, err } + crc := crc32.ChecksumIEEE(e.Value) + if crc != e.CRC { + return nil, fmt.Errorf("error: crc checksum falied %s %d != %d", key, e.CRC, crc) + } + return e.Value, nil }