Merge pull request #5613 from filecoin-project/feat/client-commp-car

Check format in client commP util
This commit is contained in:
Łukasz Magiera 2021-02-16 21:06:50 +01:00 committed by GitHub
commit b6c75d6b11
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -711,6 +711,16 @@ func (a *API) ClientCalcCommP(ctx context.Context, inpath string) (*api.CommPRet
return nil, err
}
// check that the data is a car file; if it's not, retrieval won't work
_, _, err = car.ReadHeader(bufio.NewReader(rdr))
if err != nil {
return nil, xerrors.Errorf("not a car file: %w", err)
}
if _, err := rdr.Seek(0, io.SeekStart); err != nil {
return nil, xerrors.Errorf("seek to start: %w", err)
}
pieceReader, pieceSize := padreader.New(rdr, uint64(stat.Size()))
commP, err := ffiwrapper.GeneratePieceCIDFromFile(arbitraryProofType, pieceReader, pieceSize)