mirror of
				https://github.com/tailscale/tailscale.git
				synced 2025-11-04 00:55:11 +00:00 
			
		
		
		
	ipn: treat zero-length file state store file as missing
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
		
				
					committed by
					
						
						Brad Fitzpatrick
					
				
			
			
				
	
			
			
			
						parent
						
							3aa68cd397
						
					
				
				
					commit
					8f30fa67aa
				
			@@ -10,6 +10,7 @@ import (
 | 
			
		||||
	"errors"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"io/ioutil"
 | 
			
		||||
	"log"
 | 
			
		||||
	"os"
 | 
			
		||||
	"path/filepath"
 | 
			
		||||
	"sync"
 | 
			
		||||
@@ -100,6 +101,14 @@ func (s *FileStore) String() string { return fmt.Sprintf("FileStore(%q)", s.path
 | 
			
		||||
// NewFileStore returns a new file store that persists to path.
 | 
			
		||||
func NewFileStore(path string) (*FileStore, error) {
 | 
			
		||||
	bs, err := ioutil.ReadFile(path)
 | 
			
		||||
 | 
			
		||||
	// Treat an empty file as a missing file.
 | 
			
		||||
	// (https://github.com/tailscale/tailscale/issues/895#issuecomment-723255589)
 | 
			
		||||
	if err == nil && len(bs) == 0 {
 | 
			
		||||
		log.Printf("ipn.NewFileStore(%q): file empty; treating it like a missing file [warning]", path)
 | 
			
		||||
		err = os.ErrNotExist
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		if os.IsNotExist(err) {
 | 
			
		||||
			// Write out an initial file, to verify that we can write
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user