dgryski.semgrep-go.oddifsequence.odd-sequence-ifs

profile photo of dgryskidgryski
Author
581
Download Count*
License

Odd sequence of ifs

Run Locally

Run in CI

Defintion

rules:
  - id: odd-sequence-ifs
    patterns:
      - pattern-either:
          - pattern: |
              if $X { return ... }
              if $X { ... }
          - pattern: |
              if ! $X { return ... }
              if $X { ... }
          - pattern: |
              if $X { return ... }
              if ! $X { ... }
          - pattern: |
              if $X == $Y { return ... }
              if $X != $Y { ... }
          - pattern: |
              if $X != $Y { return ... }
              if $X == $Y { ... }
          - pattern: |
              if $X { return  ... }
              for $X { ... }
          - pattern: |
              if $X { break }
              if $X { ... }
          - pattern: |
              if ! $X { break }
              if $X { ... }
          - pattern: |
              if $X { break }
              if ! $X { ... }
          - pattern: |
              if $X == $Y { break }
              if $X != $Y { ... }
          - pattern: |
              if $X != $Y { break }
              if $X == $Y { ... }
          - pattern: |
              if $X { break }
              for $X { ... }
          - pattern: |
              if $X { continue }
              if $X { ... }
          - pattern: |
              if ! $X { continue }
              if $X { ... }
          - pattern: |
              if $X { continue }
              if ! $X { ... }
          - pattern: |
              if $X == $Y { continue }
              if $X != $Y { ... }
          - pattern: |
              if $X != $Y { continue }
              if $X == $Y { ... }
          - pattern: |
              if $X { continue }
              for $X { ... }
          - pattern: |
              if $X {
                      if $X { ... }
                      ...
              }
          - pattern: |
              if $X {
                      if ! $X { ... }
                      ...
              }
          - pattern: |
              if ! $X {
                      if $X { ... }
                    ...
              }
          - pattern: |
              if $X == $Y {
                      if $X != $Y { ... }
                      ...
              }
          - pattern: |
              if $X != $Y {
                      if $X == $Y { ... }
                      ...
              }
          - pattern: |
              if $X {
                      for ! $X { ... }
                      ...
              }
          - pattern: |
              if ! $X {
                      for $X { ... }
                    ...
              }
          - pattern: |
              if $X == $Y {
                      for $X != $Y { ... }
                      ...
              }
          - pattern: |
              if $X != $Y {
                      for $X == $Y { ... }
                      ...
              }
          - pattern: |
              for $X {
                      if $X { ... }
                      ...
              }
          - pattern: |
              for $X {
                      if ! $X { ... }
                      ...
              }
          - pattern: |
              for ! $X {
                      if $X { ... }
                      ...
              }
          - pattern: |
              for $X == $Y {
                      if $X != $Y { ... }
                      ...
              }
          - pattern: |
              for $X != $Y {
                      if $X == $Y { ... }
                      ...
              }
    message: Odd sequence of ifs
    languages:
      - go
    severity: ERROR
    metadata:
      license: MIT