Fix oddities using a file in the root - fixes #471

* Check return from NewFsObject which caused nil ptr deref
  * Correct root directory from "" to string(os.PathSeparator) in getDirFile
This commit is contained in:
Nick Craig-Wood 2016-05-06 13:52:50 +01:00
parent bdd26d71b2
commit d205dc23e9

View File

@ -77,6 +77,9 @@ func NewFs(name, root string) (fs.Fs, error) {
var remote string
f.root, remote = getDirFile(f.root)
obj := f.NewFsObject(remote)
if obj == nil {
return nil, fmt.Errorf("Failed to make object for %q in %q", remote, f.root)
}
// return a Fs Limited to this object
return fs.NewLimited(f, obj), nil
}
@ -622,7 +625,11 @@ func (o *Object) Remove() error {
// Assumes os.PathSeparator is used.
func getDirFile(s string) (string, string) {
i := strings.LastIndex(s, string(os.PathSeparator))
return s[:i], s[i+1:]
dir, file := s[:i], s[i+1:]
if dir == "" {
dir = string(os.PathSeparator)
}
return dir, file
}
func (f *Fs) filterPath(s string) string {