diff options
| author | Eric Biggers <ebiggers@google.com> | 2022-12-04 13:27:43 -0800 |
|---|---|---|
| committer | Eric Biggers <ebiggers3@gmail.com> | 2022-12-04 14:07:39 -0800 |
| commit | 02875cef9010633b6689cfd1e2ceec9107b756b4 (patch) | |
| tree | 9f310eac398e99dd12f42d94967b2e1bf1c7fe83 | |
| parent | 5373b314473b08f13372ab55b551738307a85fbd (diff) | |
Stop using deprecated package io/ioutil
Since Go 1.16 (which recently became the minimum supported Go version
for this project), the package io/ioutil is deprecated in favor of
equivalent functionality in the io and os packages. staticcheck warns
about this. Address all the warnings by switching to the non-deprecated
replacement functions.
| -rw-r--r-- | actions/config_test.go | 5 | ||||
| -rw-r--r-- | actions/hashing_test.go | 4 | ||||
| -rw-r--r-- | actions/recovery_test.go | 5 | ||||
| -rw-r--r-- | cmd/fscrypt/fscrypt.go | 6 | ||||
| -rw-r--r-- | filesystem/filesystem.go | 7 | ||||
| -rw-r--r-- | filesystem/filesystem_test.go | 7 | ||||
| -rw-r--r-- | filesystem/mountpoint.go | 9 | ||||
| -rw-r--r-- | filesystem/mountpoint_test.go | 9 | ||||
| -rw-r--r-- | filesystem/path_test.go | 3 | ||||
| -rw-r--r-- | metadata/config.go | 3 | ||||
| -rw-r--r-- | pam_fscrypt/run_fscrypt.go | 5 |
11 files changed, 29 insertions, 34 deletions
diff --git a/actions/config_test.go b/actions/config_test.go index 3599667..49838e3 100644 --- a/actions/config_test.go +++ b/actions/config_test.go @@ -19,7 +19,6 @@ package actions import ( - "io/ioutil" "os" "path/filepath" "testing" @@ -37,7 +36,7 @@ func TestConfigFileIsCreatedWithCorrectMode(t *testing.T) { defer unix.Umask(oldMask) unix.Umask(0077) - tempDir, err := ioutil.TempDir("", "fscrypt") + tempDir, err := os.MkdirTemp("", "fscrypt") if err != nil { t.Fatal(err) } @@ -57,7 +56,7 @@ func TestConfigFileIsCreatedWithCorrectMode(t *testing.T) { } func TestCreateConfigFileV2Policy(t *testing.T) { - tempDir, err := ioutil.TempDir("", "fscrypt") + tempDir, err := os.MkdirTemp("", "fscrypt") if err != nil { t.Fatal(err) } diff --git a/actions/hashing_test.go b/actions/hashing_test.go index 2e212e9..26f627b 100644 --- a/actions/hashing_test.go +++ b/actions/hashing_test.go @@ -20,7 +20,7 @@ package actions import ( - "io/ioutil" + "io" "log" "testing" "time" @@ -54,7 +54,7 @@ func TestCostsSearch(t *testing.T) { func benchmarkCostsSearch(b *testing.B, target time.Duration) { // Disable logging for benchmarks - log.SetOutput(ioutil.Discard) + log.SetOutput(io.Discard) for i := 0; i < b.N; i++ { _, err := getHashingCosts(target) if err != nil { diff --git a/actions/recovery_test.go b/actions/recovery_test.go index 5abd0a9..35ade0e 100644 --- a/actions/recovery_test.go +++ b/actions/recovery_test.go @@ -19,7 +19,6 @@ package actions import ( - "io/ioutil" "os" "path/filepath" "strings" @@ -29,7 +28,7 @@ import ( ) func TestRecoveryPassphrase(t *testing.T) { - tempDir, err := ioutil.TempDir("", "fscrypt") + tempDir, err := os.MkdirTemp("", "fscrypt") if err != nil { t.Fatal(err) } @@ -71,7 +70,7 @@ func TestRecoveryPassphrase(t *testing.T) { recoveryFile); err != nil { t.Fatal(err) } - contentsBytes, err := ioutil.ReadFile(recoveryFile) + contentsBytes, err := os.ReadFile(recoveryFile) if err != nil { t.Fatal(err) } diff --git a/cmd/fscrypt/fscrypt.go b/cmd/fscrypt/fscrypt.go index aa5b6f4..93f97de 100644 --- a/cmd/fscrypt/fscrypt.go +++ b/cmd/fscrypt/fscrypt.go @@ -26,7 +26,7 @@ package main import ( "fmt" - "io/ioutil" + "io" "log" "os" @@ -110,8 +110,8 @@ func setupCommand(command *cli.Command) { // io.Writers and that we haven't over-specified our flags. We only print the // logs when using verbose, and only print normal stuff when not using quiet. func setupBefore(c *cli.Context) error { - log.SetOutput(ioutil.Discard) - c.App.Writer = ioutil.Discard + log.SetOutput(io.Discard) + c.App.Writer = io.Discard if verboseFlag.Value { log.SetOutput(os.Stdout) diff --git a/filesystem/filesystem.go b/filesystem/filesystem.go index 7852abb..0e1f0c8 100644 --- a/filesystem/filesystem.go +++ b/filesystem/filesystem.go @@ -35,7 +35,6 @@ package filesystem import ( "fmt" "io" - "io/ioutil" "log" "os" "os/user" @@ -335,7 +334,7 @@ func (m *Mount) PolicyPath(descriptor string) string { // directory and returns a temporary Mount which represents this temporary // directory. The caller is responsible for removing this temporary directory. func (m *Mount) tempMount() (*Mount, error) { - tempDir, err := ioutil.TempDir(filepath.Dir(m.BaseDir()), tempPrefix) + tempDir, err := os.MkdirTemp(filepath.Dir(m.BaseDir()), tempPrefix) return &Mount{Path: tempDir}, err } @@ -635,7 +634,7 @@ func (m *Mount) writeData(path string, data []byte, owner *user.User, mode os.Fi // Write the data to a temporary file, sync it, then rename into place // so that the operation will be atomic. dirPath := filepath.Dir(path) - tempFile, err := ioutil.TempFile(dirPath, tempPrefix) + tempFile, err := os.CreateTemp(dirPath, tempPrefix) if err != nil { log.Print(err) if os.IsPermission(err) { @@ -767,7 +766,7 @@ func readMetadataFileSafe(path string, trustedUser *user.User) ([]byte, int64, e } // Read the file contents, allowing at most maxMetadataFileSize bytes. reader := &io.LimitedReader{R: file, N: maxMetadataFileSize + 1} - data, err := ioutil.ReadAll(reader) + data, err := io.ReadAll(reader) if err != nil { return nil, -1, err } diff --git a/filesystem/filesystem_test.go b/filesystem/filesystem_test.go index 79fb133..f9c34ae 100644 --- a/filesystem/filesystem_test.go +++ b/filesystem/filesystem_test.go @@ -20,7 +20,6 @@ package filesystem import ( - "io/ioutil" "os" "os/user" "path/filepath" @@ -172,7 +171,7 @@ func TestSetupWithAbsoluteSymlink(t *testing.T) { if err != nil { t.Fatal(err) } - tempDir, err := ioutil.TempDir("", "fscrypt") + tempDir, err := os.MkdirTemp("", "fscrypt") if err != nil { t.Fatal(err) } @@ -519,7 +518,7 @@ func TestLinkedProtector(t *testing.T) { } func createFile(path string, size int64) error { - if err := ioutil.WriteFile(path, []byte{}, 0600); err != nil { + if err := os.WriteFile(path, []byte{}, 0600); err != nil { return err } return os.Truncate(path, size) @@ -532,7 +531,7 @@ func TestReadMetadataFileSafe(t *testing.T) { if err != nil { t.Fatal(err) } - tempDir, err := ioutil.TempDir("", "fscrypt") + tempDir, err := os.MkdirTemp("", "fscrypt") if err != nil { t.Fatal(err) } diff --git a/filesystem/mountpoint.go b/filesystem/mountpoint.go index 0b0693b..0abae06 100644 --- a/filesystem/mountpoint.go +++ b/filesystem/mountpoint.go @@ -25,7 +25,6 @@ import ( "bufio" "fmt" "io" - "io/ioutil" "log" "os" "path/filepath" @@ -537,11 +536,15 @@ func getMountFromLink(link string) (*Mount, error) { } func (mnt *Mount) getFilesystemUUID() (string, error) { - dirContents, err := ioutil.ReadDir(uuidDirectory) + dirEntries, err := os.ReadDir(uuidDirectory) if err != nil { return "", err } - for _, fileInfo := range dirContents { + for _, dirEntry := range dirEntries { + fileInfo, err := dirEntry.Info() + if err != nil { + continue + } if fileInfo.Mode()&os.ModeSymlink == 0 { continue // Only interested in UUID symlinks } diff --git a/filesystem/mountpoint_test.go b/filesystem/mountpoint_test.go index 99d4b55..43b5a0d 100644 --- a/filesystem/mountpoint_test.go +++ b/filesystem/mountpoint_test.go @@ -26,7 +26,6 @@ package filesystem import ( "fmt" - "io/ioutil" "os" "path/filepath" "strings" @@ -122,7 +121,7 @@ func TestLoadSourceDevice(t *testing.T) { func TestNondirectoryMountsIgnored(t *testing.T) { beginLoadMountInfoTest() defer endLoadMountInfoTest() - file, err := ioutil.TempFile("", "fscrypt_regfile") + file, err := os.CreateTemp("", "fscrypt_regfile") if err != nil { t.Fatal(err) } @@ -155,7 +154,7 @@ func TestNonLatestMountsIgnored(t *testing.T) { // Test that escape sequences in the mountinfo file are unescaped correctly. func TestLoadMountWithSpecialCharacters(t *testing.T) { - tempDir, err := ioutil.TempDir("", "fscrypt") + tempDir, err := os.MkdirTemp("", "fscrypt") if err != nil { t.Fatal(err) } @@ -296,7 +295,7 @@ func TestRootMountpointIsPreferred(t *testing.T) { // Test that a mountpoint that is not "/" but still contains all other // mountpoints is preferred, given independent subtrees. func TestHighestMountpointIsPreferred(t *testing.T) { - tempDir, err := ioutil.TempDir("", "fscrypt") + tempDir, err := os.MkdirTemp("", "fscrypt") if err != nil { t.Fatal(err) } @@ -331,7 +330,7 @@ func TestHighestMountpointIsPreferred(t *testing.T) { // mountpoints are contained in other mountpoints, the chosen Mount is the root // of a tree of mountpoints whose mounted subtrees contain all mounted subtrees. func TestLoadContainedSubtreesAndMountpoints(t *testing.T) { - tempDir, err := ioutil.TempDir("", "fscrypt") + tempDir, err := os.MkdirTemp("", "fscrypt") if err != nil { t.Fatal(err) } diff --git a/filesystem/path_test.go b/filesystem/path_test.go index 1c59dd5..d325054 100644 --- a/filesystem/path_test.go +++ b/filesystem/path_test.go @@ -20,7 +20,6 @@ package filesystem import ( "fmt" - "io/ioutil" "os" "testing" @@ -61,7 +60,7 @@ func TestHaveReadAccessTo(t *testing.T) { if util.IsUserRoot() { t.Skip("This test cannot be run as root") } - file, err := ioutil.TempFile("", "fscrypt_test") + file, err := os.CreateTemp("", "fscrypt_test") if err != nil { t.Fatal(err) } diff --git a/metadata/config.go b/metadata/config.go index d9d694f..1d93d74 100644 --- a/metadata/config.go +++ b/metadata/config.go @@ -28,7 +28,6 @@ package metadata import ( "io" - "io/ioutil" "google.golang.org/protobuf/encoding/protojson" ) @@ -55,7 +54,7 @@ func WriteConfig(config *Config, out io.Writer) error { // ReadConfig writes the JSON data into the config structure func ReadConfig(in io.Reader) (*Config, error) { - bytes, err := ioutil.ReadAll(in) + bytes, err := io.ReadAll(in) if err != nil { return nil, err } diff --git a/pam_fscrypt/run_fscrypt.go b/pam_fscrypt/run_fscrypt.go index db86d01..af9537f 100644 --- a/pam_fscrypt/run_fscrypt.go +++ b/pam_fscrypt/run_fscrypt.go @@ -31,7 +31,6 @@ import "C" import ( "fmt" "io" - "io/ioutil" "log" "log/syslog" "os" @@ -132,7 +131,7 @@ func parseArgs(argc C.int, argv **C.char) map[string]bool { // syslog. func setupLogging(args map[string]bool) io.Writer { log.SetFlags(0) // Syslog already includes time data itself - log.SetOutput(ioutil.Discard) + log.SetOutput(io.Discard) if args[debugFlag] { debugWriter, err := syslog.New(syslog.LOG_DEBUG, moduleName) if err == nil { @@ -142,7 +141,7 @@ func setupLogging(args map[string]bool) io.Writer { errorWriter, err := syslog.New(syslog.LOG_ERR, moduleName) if err != nil { - return ioutil.Discard + return io.Discard } return errorWriter } |