diff --git a/client/client.go b/client/client.go index ccbdd0b4..960e0139 100644 --- a/client/client.go +++ b/client/client.go @@ -4,6 +4,7 @@ import ( ".." "encoding/base64" "encoding/json" + "errors" "fmt" "github.com/cheggaaa/pb" "io" @@ -17,6 +18,7 @@ import ( const ( gitMediaType = "application/vnd.git-media" gitMediaMetaType = gitMediaType + "+json; charset=utf-8" + gitMediaHeader = "0014 git media v1\n" ) func Put(filehash, filename string) error { @@ -74,6 +76,16 @@ func Get(filename string) (io.ReadCloser, error) { return nil, err } + header := make([]byte, len(gitMediaHeader)) + _, err = io.ReadAtLeast(res.Body, header, len(gitMediaHeader)) + if err != nil { + return nil, err + } + + if string(header) != gitMediaHeader { + return nil, errors.New("Invalid header") + } + return res.Body, nil }