From c2c2dde4cbcb1db413c244c22ea189a60722ae2f Mon Sep 17 00:00:00 2001 From: Vincent Batts Date: Wed, 22 Jul 2015 10:27:53 -0400 Subject: [PATCH] tar/storage: use `filepath` instead of `path` --- tar/storage/getter.go | 13 ++++++------- tar/storage/packer.go | 6 +++--- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/tar/storage/getter.go b/tar/storage/getter.go index 5d46e6a..c44b15e 100644 --- a/tar/storage/getter.go +++ b/tar/storage/getter.go @@ -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 { diff --git a/tar/storage/packer.go b/tar/storage/packer.go index 6c4364b..c0070a6 100644 --- a/tar/storage/packer.go +++ b/tar/storage/packer.go @@ -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 }