diff --git a/select-default-deadlock.yml b/select-default-deadlock.yml new file mode 100644 index 0000000..9308386 --- /dev/null +++ b/select-default-deadlock.yml @@ -0,0 +1,14 @@ +rules: +- id: ctx-done-and-default-deadlock + patterns: + - pattern-either: + - pattern: | + select { + case <-ctx.Done(): + $BODY + default: + ... <- ... + } + message: "ctx.Done() and send to channel in default can cause a potential deadlock" + languages: [go] + severity: ERROR \ No newline at end of file