1
0
Fork 0
forked from mirrors/tar-split

tar/storage: use filepath instead of path

This commit is contained in:
Vincent Batts 2015-07-22 10:27:53 -04:00
parent 6d59e7bc76
commit c2c2dde4cb
2 changed files with 9 additions and 10 deletions

View file

@ -7,23 +7,23 @@ import (
"io"
"io/ioutil"
"os"
"path"
"path/filepath"
)
// FileGetter is the interface for getting a stream of a file payload, address
// by name/filepath. Presumably, the names will be scoped to relative file
// by name/filename. Presumably, the names will be scoped to relative file
// paths.
type FileGetter interface {
// Get returns a stream for the provided file path
Get(filepath string) (output io.ReadCloser, err error)
Get(filename string) (output io.ReadCloser, err error)
}
// FilePutter is the interface for storing a stream of a file payload,
// addressed by name/filepath.
// addressed by name/filename.
type FilePutter interface {
// Put returns the size of the stream received, and the crc64 checksum for
// the provided stream
Put(filepath string, input io.Reader) (size int64, checksum []byte, err error)
Put(filename string, input io.Reader) (size int64, checksum []byte, err error)
}
// FileGetPutter is the interface that groups both Getting and Putting file
@ -44,8 +44,7 @@ type pathFileGetter struct {
}
func (pfg pathFileGetter) Get(filename string) (io.ReadCloser, error) {
// FIXME might should have a check for '../../../../etc/passwd' attempts?
return os.Open(path.Join(pfg.root, filename))
return os.Open(filepath.Join(pfg.root, filename))
}
type bufferFileGetPutter struct {

View file

@ -5,7 +5,7 @@ import (
"encoding/json"
"errors"
"io"
"path"
"path/filepath"
)
// ErrDuplicatePath is occured when a tar archive has more than one entry for
@ -61,7 +61,7 @@ func (jup *jsonUnpacker) Next() (*Entry, error) {
// check for dup name
if e.Type == FileType {
cName := path.Clean(e.Name)
cName := filepath.Clean(e.Name)
if _, ok := jup.seen[cName]; ok {
return nil, ErrDuplicatePath
}
@ -99,7 +99,7 @@ const emptyByte byte = 0
func (jp *jsonPacker) AddEntry(e Entry) (int, error) {
// check early for dup name
if e.Type == FileType {
cName := path.Clean(e.Name)
cName := filepath.Clean(e.Name)
if _, ok := jp.seen[cName]; ok {
return -1, ErrDuplicatePath
}