Fix crash on walker error (fixes #1507)

This commit is contained in:
Audrius Butkevicius 2015-03-22 14:06:29 +00:00
parent a7492f8612
commit 2e1e8f764e
2 changed files with 10 additions and 1 deletions

View File

@ -111,7 +111,8 @@ func (w *Walker) walkAndHashFiles(fchan chan protocol.FileInfo) filepath.WalkFun
// Return value used when we are returning early and don't want to
// process the item. For directories, this means do-not-descend.
var skip error // nil
if info.IsDir() {
// info nil when error is not nil
if info != nil && info.IsDir() {
skip = filepath.SkipDir
}

View File

@ -259,6 +259,14 @@ func TestNormalization(t *testing.T) {
}
}
func TestIssue1507(t *testing.T) {
w := Walker{}
c := make(chan protocol.FileInfo, 100)
fn := w.walkAndHashFiles(c)
fn("", nil, protocol.ErrClosed)
}
func walkDir(dir string) ([]protocol.FileInfo, error) {
w := Walker{
Dir: dir,