From 1166557da13876ac4189d81128e0ffceec0b969e Mon Sep 17 00:00:00 2001 From: Harshavardhana Date: Thu, 11 Dec 2014 15:06:29 -0800 Subject: [PATCH] Add crc checks for Object Get() --- pkgs/storage/appendstorage/append_storage.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkgs/storage/appendstorage/append_storage.go b/pkgs/storage/appendstorage/append_storage.go index e999f2541..651da0b5f 100644 --- a/pkgs/storage/appendstorage/append_storage.go +++ b/pkgs/storage/appendstorage/append_storage.go @@ -68,12 +68,20 @@ func (storage *appendStorage) Get(objectPath string) (io.Reader, error) { offset := header.Offset length := header.Length + crc := header.Crc object := make([]byte, length) _, err := storage.file.ReadAt(object, offset) if err != nil { return nil, err } + newcrc, err := crc32c.Crc32c(object) + if err != nil { + return nil, err + } + if newcrc != crc { + return nil, err + } return bytes.NewBuffer(object), nil }