Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stray double semi-colon cause erratic results #354

Open
djames-bloom opened this issue Oct 19, 2023 · 0 comments
Open

Stray double semi-colon cause erratic results #354

djames-bloom opened this issue Oct 19, 2023 · 0 comments

Comments

@djames-bloom
Copy link

Client version: 0.46.2(e359414)

When a proto files contain stray double semi-colons, dependent on where in the .proto it is, two unexpected behaviours are displayed.


Error 1

If the extra semi-colon is found in a message or enum section, e.g.

message Example {
  string key = 1;;
  string value = 2;
}

Expected behaviour: The additional symbol should be flagged and a warning returned
Displayed behaviour: The proto file validates


Error 2

If the extra semi-colon is found in imports or options, e.g.

import "types/debug.proto";
import "types/failure.proto";;
import "types/meta.proto";

Expected behaviour: The additional symbol should be flagged and a warning returned
Displayed behaviour: The linter hits a nil pointer exception and panics

Panic trace
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x2 addr=0x18 pc=0x1050bf434]

goroutine 1 [running]:
github.com/yoheimuta/go-protoparser/v4/parser.(*Proto).Accept(0x1400009b770?, {0x1056919d0, 0x14000316708})
	/home/runner/go/pkg/mod/github.com/yoheimuta/go-protoparser/[email protected]/parser/proto.go:26 +0x64
github.com/yoheimuta/protolint/linter/visitor.RunVisitorAutoDisable({0x105692b28?, 0x14000485bc0?}, 0x1400009b770, {0x105471068, 0x10}, 0x5?)
	/home/runner/work/protolint/protolint/linter/visitor/hasExtendedVisitor.go:55 +0x104
github.com/yoheimuta/protolint/linter/visitor.RunVisitor(...)
	/home/runner/work/protolint/protolint/linter/visitor/hasExtendedVisitor.go:28
github.com/yoheimuta/protolint/internal/addon/rules.QuoteConsistentRule.Apply({{{0x1054688b0?, 0x0?}}, 0x10547476b?, 0x15?}, 0x1400003ea24?)
	/home/runner/work/protolint/protolint/internal/addon/rules/quoteConsistentRule.go:60 +0xac
github.com/yoheimuta/protolint/internal/linter.(*Linter).Run(0x16ae4f39d?, 0x1400051d728, {0x1400021f000?, 0xc, 0x0?})
	/home/runner/work/protolint/protolint/internal/linter/linter.go:33 +0x108
github.com/yoheimuta/protolint/internal/cmd/subcmds/lint.(*CmdLint).runOneFile(0x140001d2700, {{0x1400003ea00, 0x40}, {0x1400003ea24, 0x1c}})
	/home/runner/work/protolint/protolint/internal/cmd/subcmds/lint/cmdLint.go:131 +0x108
github.com/yoheimuta/protolint/internal/cmd/subcmds/lint.(*CmdLint).run(0x140001d2700)
	/home/runner/work/protolint/protolint/internal/cmd/subcmds/lint/cmdLint.go:100 +0xd8
github.com/yoheimuta/protolint/internal/cmd/subcmds/lint.(*CmdLint).Run(0x140001d2700)
	/home/runner/work/protolint/protolint/internal/cmd/subcmds/lint/cmdLint.go:77 +0x44
github.com/yoheimuta/protolint/internal/cmd.doLint({0x140000300a0?, 0x400000?, 0x1400006a658?}, {0x105686128, 0x1400006e028}, {0x105686128, 0x1400006e030})
	/home/runner/work/protolint/protolint/internal/cmd/cmd.go:110 +0x1f0
github.com/yoheimuta/protolint/internal/cmd.doSub({0x14000030090?, 0x104fb7ca4?, 0x14000199ec8?}, {0x105686128?, 0x1400006e028?}, {0x105686128?, 0x1400006e030?})
	/home/runner/work/protolint/protolint/internal/cmd/cmd.go:64 +0xac
github.com/yoheimuta/protolint/internal/cmd.Do({0x14000030090?, 0x0?, 0x60?}, {0x105686128?, 0x1400006e028?}, {0x105686128?, 0x1400006e030?})
	/home/runner/work/protolint/protolint/internal/cmd/cmd.go:49 +0x78
main.main()
	/home/runner/work/protolint/protolint/cmd/protolint/main.go:11 +0x70
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant