Примеры ошибок, обнаруженных с помощью диагностики V8004
V8004. The use of 'if A {...} else if A {...}' pattern was detected. Potential logical error is present.
Havoc
V8004 The use of 'if A {...} else if A {...}' pattern was detected. Potential logical error is present. Check lines: 3637, 3628. demons.go 3637
var (
Status = Parser.ParseInt32()
Message = make(map[string]string)
)
logger.Debug(fmt.Sprintf(....))
if Status == INJECT_ERROR_SUCCESS {
Message["Type"] = "Good"
Message["Message"] = "Successful injected shellcode"
} else if Status == INJECT_ERROR_FAILED { // <=
Message["Type"] = "Error"
Message["Message"] = "Failed to inject shellcode"
} else if Status == INJECT_ERROR_INVALID_PARAM {
Message["Type"] = "Error"
Message["Message"] = "Invalid parameter specified"
} else if Status == INJECT_ERROR_PROCESS_ARCH_MISMATCH {
Message["Type"] = "Error"
Message["Message"] = "Process architecture mismatch"
} else if Status == INJECT_ERROR_FAILED { // <=
Message["Type"] = "Error"
Message["Message"] = "Failed to inject shellcode"
}
glance
V8004 The use of 'if A {...} else if A {...}' pattern was detected. Potential logical error is present. Check lines: 92, 86. cli.go 92
func parseCliOptions() (*cliOptions, error) {
var args []string
args = os.Args[1:]
if len(args) == 0 {
intent = cliIntentServe
} else if len(args) == 1 {
....
} else if len(args) == 2 {
if args[0] == "password:hash" {
intent = cliIntentPasswordHash
} else {
return nil, unknownCommandErr
}
} else if len(args) == 2 {
if args[0] == "mountpoint:info" {
intent = cliIntentMountpointInfo
} else {
return nil, unknownCommandErr
}
} else {
return nil, unknownCommandErr
}
}