{"record":{"id":"0c423d4faeaa3ba4","repo":"kgretzky/evilginx2","slug":"delete-v","errorCode":null,"errorMessage":"delete: %v","messagePattern":"delete: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"core/terminal.go","lineNumber":1084,"sourceCode":"\t\t\t\t\t\tdi = append(di, n)\n\t\t\t\t\t}\n\t\t\t\t\tif len(di) > 0 {\n\t\t\t\t\t\trdi := t.cfg.DeleteLures(di)\n\t\t\t\t\t\tfor _, id := range rdi {\n\t\t\t\t\t\t\tlog.Info(\"deleted lure with ID: %d\", id)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn nil\n\t\t\t\t} else {\n\t\t\t\t\trc := strings.Split(args[1], \",\")\n\t\t\t\t\tdi := []int{}\n\t\t\t\t\tfor _, pc := range rc {\n\t\t\t\t\t\tpc = strings.TrimSpace(pc)\n\t\t\t\t\t\trd := strings.Split(pc, \"-\")\n\t\t\t\t\t\tif len(rd) == 2 {\n\t\t\t\t\t\t\tb_id, err := strconv.Atoi(strings.TrimSpace(rd[0]))\n\t\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\t\treturn fmt.Errorf(\"delete: %v\", err)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\te_id, err := strconv.Atoi(strings.TrimSpace(rd[1]))\n\t\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\t\treturn fmt.Errorf(\"delete: %v\", err)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tfor i := b_id; i <= e_id; i++ {\n\t\t\t\t\t\t\t\tdi = append(di, i)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if len(rd) == 1 {\n\t\t\t\t\t\t\tb_id, err := strconv.Atoi(strings.TrimSpace(rd[0]))\n\t\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\t\treturn fmt.Errorf(\"delete: %v\", err)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdi = append(di, b_id)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif len(di) > 0 {\n\t\t\t\t\t\trdi := t.cfg.DeleteLures(di)","sourceCodeStart":1066,"sourceCodeEnd":1102,"githubUrl":"https://github.com/kgretzky/evilginx2/blob/4c0988a1d9db4d172a185e979a38bfd0efdb5830/core/terminal.go#L1066-L1102","documentation":"In 'lures delete <range>' with a comma/range list (e.g. '1,3-5'), a numeric token failed to parse with strconv.Atoi, so the deletion is aborted with the wrapped parse error. Validation guard on the ID-list input; no lures are deleted when this fires.","triggerScenarios":"Running `lures delete 0-x`, `lures delete abc-3`, or a range whose endpoints contain whitespace/non-digits that Atoi rejects.","commonSituations":"Hand-typing a lure id range with typos, using ids listed with zero-padding or letters, or pasting a malformed range.","solutions":["Run `lures` to list valid numeric lure ids and build the range from those","Use a plain numeric range like `lures delete 0-3` or a single id `lures delete 2`","Trim stray whitespace/characters from the range string"],"exampleFix":"// before\nlures delete 1-o\n// after\nlures delete 1-5","handlingStrategy":"validation","validationCode":"func validRange(r string) bool {\n    parts := strings.Split(r, \"-\")\n    if len(parts) != 2 { return false }\n    _, err1 := strconv.Atoi(strings.TrimSpace(parts[0]))\n    _, err2 := strconv.Atoi(strings.TrimSpace(parts[1]))\n    return err1 == nil && err2 == nil\n}","typeGuard":null,"tryCatchPattern":"if b, err := strconv.Atoi(s); err != nil {\n    return fmt.Errorf(\"delete: %v\", err)\n}","preventionTips":["Use numeric lure ids exactly as listed by the `lures` command","Format delete ranges as a-b with digits only","Trim whitespace and avoid stray characters in ranges"],"tags":["cli","argument-validation","strconv","evilginx2"],"backgroundTag":"invalid-number-format","analyzedSha":"4c0988a1d9db4d172a185e979a38bfd0efdb5830","analyzedAt":"2026-09-05T19:23:07.238Z","contentChangedAt":"2026-09-05T19:23:07.238Z","schemaVersion":2},"datasetVersion":"2026-09-12T22:17:10.623Z"}