diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2020-06-04 21:47:34 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2020-06-05 12:23:19 +0200 |
| commit | 6c22a3d2ddd599dab260b2d36d91b0292254893c (patch) | |
| tree | 78ff13181c320dd71f3e76b1e745f0f9f7539d82 /pkg | |
| parent | 503fd5b2f7dbac79970770f0fc6754163dce1588 (diff) | |
.golangci.yml: enable nestif checker
Prevents functions with too many nested if's.
Diffstat (limited to 'pkg')
| -rw-r--r-- | pkg/ifuzz/decode.go | 2 | ||||
| -rw-r--r-- | pkg/ifuzz/encode.go | 2 | ||||
| -rw-r--r-- | pkg/osutil/osutil_unix.go | 32 |
3 files changed, 20 insertions, 16 deletions
diff --git a/pkg/ifuzz/decode.go b/pkg/ifuzz/decode.go index 4e4c5873e..b16c9f0bd 100644 --- a/pkg/ifuzz/decode.go +++ b/pkg/ifuzz/decode.go @@ -10,7 +10,7 @@ import ( // Decode decodes instruction length for the given mode. // It can have falsely decode incorrect instructions, // but should not fail to decode correct instructions. -// nolint: gocyclo +// nolint: gocyclo, nestif func Decode(mode int, text []byte) (int, error) { if len(text) == 0 { return 0, fmt.Errorf("zero-length instruction") diff --git a/pkg/ifuzz/encode.go b/pkg/ifuzz/encode.go index 4780c4bd8..ecabcfcd9 100644 --- a/pkg/ifuzz/encode.go +++ b/pkg/ifuzz/encode.go @@ -11,7 +11,7 @@ import ( "math/rand" ) -// nolint: gocyclo +// nolint: gocyclo, nestif func (insn *Insn) Encode(cfg *Config, r *rand.Rand) []byte { if !insn.isCompatible(cfg) { panic("instruction is not suitable for this mode") diff --git a/pkg/osutil/osutil_unix.go b/pkg/osutil/osutil_unix.go index 8f31a43e0..914398c79 100644 --- a/pkg/osutil/osutil_unix.go +++ b/pkg/osutil/osutil_unix.go @@ -36,21 +36,9 @@ func ProcessTempDir(where string) (string, error) { err := os.Mkdir(path, DefaultDirPerm) if os.IsExist(err) { // Try to clean up. - data, err := ioutil.ReadFile(pidfile) - if err == nil && len(data) > 0 { - pid, err := strconv.Atoi(string(data)) - if err == nil && pid > 1 { - if err := syscall.Kill(pid, 0); err == syscall.ESRCH { - if os.Remove(pidfile) == nil { - if os.RemoveAll(path) == nil { - i-- - continue - } - } - } - } + if cleanupTempDir(path, pidfile) { + i-- } - // If err != nil, assume that the pid file is not created yet. continue } if err != nil { @@ -64,6 +52,22 @@ func ProcessTempDir(where string) (string, error) { return "", fmt.Errorf("too many live instances") } +func cleanupTempDir(path, pidfile string) bool { + data, err := ioutil.ReadFile(pidfile) + if err == nil && len(data) > 0 { + pid, err := strconv.Atoi(string(data)) + if err == nil && pid > 1 { + if err := syscall.Kill(pid, 0); err == syscall.ESRCH { + if os.Remove(pidfile) == nil { + return os.RemoveAll(path) == nil + } + } + } + } + // If err != nil, assume that the pid file is not created yet. + return false +} + // HandleInterrupts closes shutdown chan on first SIGINT // (expecting that the program will gracefully shutdown and exit) // and terminates the process on third SIGINT. |
