浏览代码

lib/scanner: Error handling in walk function (fixes #4753) (#4754)

Jakob Borg 7 年之前
父节点
当前提交
c120c3a403
共有 1 个文件被更改,包括 7 次插入11 次删除
  1. 7 11
      lib/scanner/walk.go

+ 7 - 11
lib/scanner/walk.go

@@ -255,11 +255,14 @@ func (w *walker) createFSWalkFn(ctx context.Context, fsChan chan<- fsWalkResult)
 			skip = fs.SkipDir
 			skip = fs.SkipDir
 		}
 		}
 
 
-		if path == "." {
-			if err != nil {
-				fsWalkError(ctx, fsChan, path, err)
-				return skip
+		if err != nil {
+			if sendErr := fsWalkError(ctx, fsChan, path, err); sendErr != nil {
+				return sendErr
 			}
 			}
+			return skip
+		}
+
+		if path == "." {
 			return nil
 			return nil
 		}
 		}
 
 
@@ -282,13 +285,6 @@ func (w *walker) createFSWalkFn(ctx context.Context, fsChan chan<- fsWalkResult)
 			return skip
 			return skip
 		}
 		}
 
 
-		if err != nil {
-			if sendErr := fsWalkError(ctx, fsChan, path, err); sendErr != nil {
-				return sendErr
-			}
-			return skip
-		}
-
 		if !utf8.ValidString(path) {
 		if !utf8.ValidString(path) {
 			if err := fsWalkError(ctx, fsChan, path, errors.New("path isn't a valid utf8 string")); err != nil {
 			if err := fsWalkError(ctx, fsChan, path, errors.New("path isn't a valid utf8 string")); err != nil {
 				return err
 				return err