소스 검색

lib/osutil: Check returned error instead of info (ref #6885) (#6887)

Simon Frei 5 년 전
부모
커밋
9c2117f08e
1개의 변경된 파일6개의 추가작업 그리고 6개의 파일을 삭제
  1. 6 6
      lib/osutil/atomic.go

+ 6 - 6
lib/osutil/atomic.go

@@ -93,12 +93,12 @@ func (w *AtomicWriter) Close() error {
 		return err
 	}
 
-	info, err := w.fs.Lstat(w.path)
-	if err != nil && !fs.IsNotExist(err) {
-		w.err = err
-		return err
+	info, infoErr := w.fs.Lstat(w.path)
+	if infoErr != nil && !fs.IsNotExist(infoErr) {
+		w.err = infoErr
+		return infoErr
 	}
-	err = w.fs.Rename(w.next.Name(), w.path)
+	err := w.fs.Rename(w.next.Name(), w.path)
 	if runtime.GOOS == "windows" && fs.IsPermission(err) {
 		// On Windows, we might not be allowed to rename over the file
 		// because it's read-only. Get us some write permissions and try
@@ -110,7 +110,7 @@ func (w *AtomicWriter) Close() error {
 		w.err = err
 		return err
 	}
-	if info != nil {
+	if infoErr == nil {
 		if err := w.fs.Chmod(w.path, info.Mode()); err != nil {
 			w.err = err
 			return err