github.com/amarpal/go-tools@v0.0.0-20240422043104-40142f59f616/staticcheck/sa9007/testdata/src/example.com/CheckBadRemoveAll/CheckBadRemoveAll.go (about)

     1  package pkg
     2  
     3  import (
     4  	"os"
     5  	"path/filepath"
     6  )
     7  
     8  func fn1() {
     9  	x := os.TempDir()
    10  	defer os.RemoveAll(x) //@ diag(`deletes the user's entire temporary directory`)
    11  
    12  	x = ""
    13  }
    14  
    15  func fn2() {
    16  	x := os.TempDir()
    17  	if true {
    18  		os.RemoveAll(x) //@ diag(`deletes the user's entire temporary directory`)
    19  	}
    20  }
    21  
    22  func fn3() {
    23  	x := os.TempDir()
    24  	if true {
    25  		x = filepath.Join(x, "foo")
    26  	}
    27  	// we don't flag this to avoid false positives in infeasible paths
    28  	os.RemoveAll(x)
    29  }
    30  
    31  func fn4() {
    32  	x, _ := os.UserCacheDir()
    33  	os.RemoveAll(x) //@ diag(`deletes the user's entire cache directory`)
    34  
    35  	x, _ = os.UserConfigDir()
    36  	os.RemoveAll(x) //@ diag(`deletes the user's entire config directory`)
    37  
    38  	x, _ = os.UserHomeDir()
    39  	os.RemoveAll(x) //@ diag(`deletes the user's entire home directory`)
    40  }