Skip to content

Commit 0b228a7

Browse files
kevinawhyrusleeping
authored andcommitted
Move block verification into readDataObj.
License: MIT Signed-off-by: Kevin Atkinson <[email protected]>
1 parent 408823b commit 0b228a7

File tree

1 file changed

+12
-11
lines changed

1 file changed

+12
-11
lines changed

filestore/fsrefstore.go

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -104,24 +104,16 @@ func (f *FileManager) Get(c *cid.Cid) (blocks.Block, error) {
104104
return nil, err
105105
}
106106

107-
out, err := f.readDataObj(&dobj)
107+
out, err := f.readDataObj(c, &dobj)
108108
if err != nil {
109109
return nil, err
110110
}
111111

112-
outcid, err := c.Prefix().Sum(out)
113-
if err != nil {
114-
return nil, err
115-
}
116-
117-
if !c.Equals(outcid) {
118-
return nil, &CorruptReferenceError{fmt.Errorf("data in file did not match. %s offset %d", dobj.GetFilePath(), dobj.GetOffset())}
119-
}
120-
121112
return blocks.NewBlockWithCid(out, c)
122113
}
123114

124-
func (f *FileManager) readDataObj(d *pb.DataObj) ([]byte, error) {
115+
// reads and verifies the block
116+
func (f *FileManager) readDataObj(c *cid.Cid, d *pb.DataObj) ([]byte, error) {
125117
p := filepath.FromSlash(d.GetFilePath())
126118
abspath := filepath.Join(f.root, p)
127119

@@ -142,6 +134,15 @@ func (f *FileManager) readDataObj(d *pb.DataObj) ([]byte, error) {
142134
return nil, &CorruptReferenceError{err}
143135
}
144136

137+
outcid, err := c.Prefix().Sum(outbuf)
138+
if err != nil {
139+
return nil, err
140+
}
141+
142+
if !c.Equals(outcid) {
143+
return nil, &CorruptReferenceError{fmt.Errorf("data in file did not match. %s offset %d", d.GetFilePath(), d.GetOffset())}
144+
}
145+
145146
return outbuf, nil
146147
}
147148

0 commit comments

Comments
 (0)