---
source: crates/ruff_linter/src/rules/flake8_bandit/mod.rs
---
S603.py:5:1: S603 `subprocess` call: check for execution of untrusted input
  |
3 | # Different Popen wrappers are checked.
4 | a = input()
5 | Popen(a, shell=False)
  | ^^^^^ S603
6 | call(a, shell=False)
7 | check_call(a, shell=False)
  |

S603.py:6:1: S603 `subprocess` call: check for execution of untrusted input
  |
4 | a = input()
5 | Popen(a, shell=False)
6 | call(a, shell=False)
  | ^^^^ S603
7 | check_call(a, shell=False)
8 | check_output(a, shell=False)
  |

S603.py:7:1: S603 `subprocess` call: check for execution of untrusted input
  |
5 | Popen(a, shell=False)
6 | call(a, shell=False)
7 | check_call(a, shell=False)
  | ^^^^^^^^^^ S603
8 | check_output(a, shell=False)
9 | run(a, shell=False)
  |

S603.py:8:1: S603 `subprocess` call: check for execution of untrusted input
  |
6 | call(a, shell=False)
7 | check_call(a, shell=False)
8 | check_output(a, shell=False)
  | ^^^^^^^^^^^^ S603
9 | run(a, shell=False)
  |

S603.py:9:1: S603 `subprocess` call: check for execution of untrusted input
   |
 7 | check_call(a, shell=False)
 8 | check_output(a, shell=False)
 9 | run(a, shell=False)
   | ^^^ S603
10 |
11 | # Falsey values are treated as false.
   |

S603.py:12:1: S603 `subprocess` call: check for execution of untrusted input
   |
11 | # Falsey values are treated as false.
12 | Popen(a, shell=0)
   | ^^^^^ S603
13 | Popen(a, shell=[])
14 | Popen(a, shell={})
   |

S603.py:13:1: S603 `subprocess` call: check for execution of untrusted input
   |
11 | # Falsey values are treated as false.
12 | Popen(a, shell=0)
13 | Popen(a, shell=[])
   | ^^^^^ S603
14 | Popen(a, shell={})
15 | Popen(a, shell=None)
   |

S603.py:14:1: S603 `subprocess` call: check for execution of untrusted input
   |
12 | Popen(a, shell=0)
13 | Popen(a, shell=[])
14 | Popen(a, shell={})
   | ^^^^^ S603
15 | Popen(a, shell=None)
   |

S603.py:15:1: S603 `subprocess` call: check for execution of untrusted input
   |
13 | Popen(a, shell=[])
14 | Popen(a, shell={})
15 | Popen(a, shell=None)
   | ^^^^^ S603
16 |
17 | # Unknown values are treated as falsey.
   |

S603.py:18:1: S603 `subprocess` call: check for execution of untrusted input
   |
17 | # Unknown values are treated as falsey.
18 | Popen(a, shell=True if True else False)
   | ^^^^^ S603
19 |
20 | # No value is also caught.
   |

S603.py:21:1: S603 `subprocess` call: check for execution of untrusted input
   |
20 | # No value is also caught.
21 | Popen(a)
   | ^^^^^ S603
22 |
23 | # Literals are fine, they're trusted.
   |

S603.py:24:1: S603 `subprocess` call: check for execution of untrusted input
   |
23 | # Literals are fine, they're trusted.
24 | run("true")
   | ^^^ S603
25 | Popen(["true"])
26 | Popen("true", shell=False)
   |

S603.py:25:1: S603 `subprocess` call: check for execution of untrusted input
   |
23 | # Literals are fine, they're trusted.
24 | run("true")
25 | Popen(["true"])
   | ^^^^^ S603
26 | Popen("true", shell=False)
27 | call("true", shell=False)
   |

S603.py:26:1: S603 `subprocess` call: check for execution of untrusted input
   |
24 | run("true")
25 | Popen(["true"])
26 | Popen("true", shell=False)
   | ^^^^^ S603
27 | call("true", shell=False)
28 | check_call("true", shell=False)
   |

S603.py:27:1: S603 `subprocess` call: check for execution of untrusted input
   |
25 | Popen(["true"])
26 | Popen("true", shell=False)
27 | call("true", shell=False)
   | ^^^^ S603
28 | check_call("true", shell=False)
29 | check_output("true", shell=False)
   |

S603.py:28:1: S603 `subprocess` call: check for execution of untrusted input
   |
26 | Popen("true", shell=False)
27 | call("true", shell=False)
28 | check_call("true", shell=False)
   | ^^^^^^^^^^ S603
29 | check_output("true", shell=False)
30 | run("true", shell=False)
   |

S603.py:29:1: S603 `subprocess` call: check for execution of untrusted input
   |
27 | call("true", shell=False)
28 | check_call("true", shell=False)
29 | check_output("true", shell=False)
   | ^^^^^^^^^^^^ S603
30 | run("true", shell=False)
   |

S603.py:30:1: S603 `subprocess` call: check for execution of untrusted input
   |
28 | check_call("true", shell=False)
29 | check_output("true", shell=False)
30 | run("true", shell=False)
   | ^^^ S603
31 |
32 | # Not through assignments though.
   |

S603.py:34:1: S603 `subprocess` call: check for execution of untrusted input
   |
32 | # Not through assignments though.
33 | cmd = ["true"]
34 | run(cmd)
   | ^^^ S603
35 |
36 | # Instant named expressions are fine.
   |

S603.py:37:1: S603 `subprocess` call: check for execution of untrusted input
   |
36 | # Instant named expressions are fine.
37 | run(c := "true")
   | ^^^ S603
38 |
39 | # But non-instant are not.
   |

S603.py:41:1: S603 `subprocess` call: check for execution of untrusted input
   |
39 | # But non-instant are not.
40 | (e := "echo")
41 | run(e)
   | ^^^ S603
   |
