#select | src/unsafe_shell_test.py:5:15:5:28 | BinaryExpr | src/unsafe_shell_test.py:4:22:4:25 | name | src/unsafe_shell_test.py:5:25:5:28 | name | This string concatenation which depends on $@ is later used in a $@. | src/unsafe_shell_test.py:4:22:4:25 | name | library input | src/unsafe_shell_test.py:5:5:5:29 | Attribute() | shell command | | src/unsafe_shell_test.py:8:15:8:28 | Fstring | src/unsafe_shell_test.py:4:22:4:25 | name | src/unsafe_shell_test.py:8:23:8:26 | name | This f-string which depends on $@ is later used in a $@. | src/unsafe_shell_test.py:4:22:4:25 | name | library input | src/unsafe_shell_test.py:8:5:8:29 | Attribute() | shell command | | src/unsafe_shell_test.py:11:15:11:38 | BinaryExpr | src/unsafe_shell_test.py:4:22:4:25 | name | src/unsafe_shell_test.py:11:25:11:38 | Attribute() | This string concatenation which depends on $@ is later used in a $@. | src/unsafe_shell_test.py:4:22:4:25 | name | library input | src/unsafe_shell_test.py:11:5:11:39 | Attribute() | shell command | | src/unsafe_shell_test.py:14:15:14:40 | BinaryExpr | src/unsafe_shell_test.py:4:22:4:25 | name | src/unsafe_shell_test.py:14:25:14:40 | Attribute() | This string concatenation which depends on $@ is later used in a $@. | src/unsafe_shell_test.py:4:22:4:25 | name | library input | src/unsafe_shell_test.py:14:5:14:41 | Attribute() | shell command | | src/unsafe_shell_test.py:17:15:17:36 | Attribute() | src/unsafe_shell_test.py:4:22:4:25 | name | src/unsafe_shell_test.py:17:32:17:35 | name | This formatted string which depends on $@ is later used in a $@. | src/unsafe_shell_test.py:4:22:4:25 | name | library input | src/unsafe_shell_test.py:17:5:17:37 | Attribute() | shell command | | src/unsafe_shell_test.py:20:15:20:30 | BinaryExpr | src/unsafe_shell_test.py:4:22:4:25 | name | src/unsafe_shell_test.py:20:27:20:30 | name | This formatted string which depends on $@ is later used in a $@. | src/unsafe_shell_test.py:4:22:4:25 | name | library input | src/unsafe_shell_test.py:20:5:20:31 | Attribute() | shell command | | src/unsafe_shell_test.py:29:20:29:33 | BinaryExpr | src/unsafe_shell_test.py:26:20:26:23 | name | src/unsafe_shell_test.py:29:30:29:33 | name | This string concatenation which depends on $@ is later used in a $@. | src/unsafe_shell_test.py:26:20:26:23 | name | library input | src/unsafe_shell_test.py:29:5:29:46 | Attribute() | shell command | | src/unsafe_shell_test.py:39:20:39:33 | BinaryExpr | src/unsafe_shell_test.py:36:22:36:25 | name | src/unsafe_shell_test.py:39:30:39:33 | name | This string concatenation which depends on $@ is later used in a $@. | src/unsafe_shell_test.py:36:22:36:25 | name | library input | src/unsafe_shell_test.py:39:5:39:46 | Attribute() | shell command | | src/unsafe_shell_test.py:42:24:42:34 | BinaryExpr | src/unsafe_shell_test.py:36:22:36:25 | name | src/unsafe_shell_test.py:42:34:42:34 | x | This string concatenation which depends on $@ is later used in a $@. | src/unsafe_shell_test.py:36:22:36:25 | name | library input | src/unsafe_shell_test.py:42:9:42:47 | Attribute() | shell command | edges | src/unsafe_shell_test.py:4:22:4:25 | name | src/unsafe_shell_test.py:5:25:5:28 | name | provenance | | | src/unsafe_shell_test.py:4:22:4:25 | name | src/unsafe_shell_test.py:8:23:8:26 | name | provenance | | | src/unsafe_shell_test.py:4:22:4:25 | name | src/unsafe_shell_test.py:11:34:11:37 | name | provenance | | | src/unsafe_shell_test.py:4:22:4:25 | name | src/unsafe_shell_test.py:14:35:14:38 | name | provenance | | | src/unsafe_shell_test.py:4:22:4:25 | name | src/unsafe_shell_test.py:17:32:17:35 | name | provenance | | | src/unsafe_shell_test.py:4:22:4:25 | name | src/unsafe_shell_test.py:20:27:20:30 | name | provenance | | | src/unsafe_shell_test.py:11:34:11:37 | name | src/unsafe_shell_test.py:11:25:11:38 | Attribute() | provenance | str.join | | src/unsafe_shell_test.py:14:34:14:39 | List [List element] | src/unsafe_shell_test.py:14:25:14:40 | Attribute() | provenance | str.join | | src/unsafe_shell_test.py:14:35:14:38 | name | src/unsafe_shell_test.py:14:34:14:39 | List [List element] | provenance | | | src/unsafe_shell_test.py:26:20:26:23 | name | src/unsafe_shell_test.py:29:30:29:33 | name | provenance | | | src/unsafe_shell_test.py:36:22:36:25 | name | src/unsafe_shell_test.py:39:30:39:33 | name | provenance | | | src/unsafe_shell_test.py:36:22:36:25 | name | src/unsafe_shell_test.py:44:20:44:23 | name | provenance | | | src/unsafe_shell_test.py:41:24:41:24 | x | src/unsafe_shell_test.py:42:34:42:34 | x | provenance | | | src/unsafe_shell_test.py:44:20:44:23 | name | src/unsafe_shell_test.py:41:24:41:24 | x | provenance | | nodes | src/unsafe_shell_test.py:4:22:4:25 | name | semmle.label | name | | src/unsafe_shell_test.py:5:25:5:28 | name | semmle.label | name | | src/unsafe_shell_test.py:8:23:8:26 | name | semmle.label | name | | src/unsafe_shell_test.py:11:25:11:38 | Attribute() | semmle.label | Attribute() | | src/unsafe_shell_test.py:11:34:11:37 | name | semmle.label | name | | src/unsafe_shell_test.py:14:25:14:40 | Attribute() | semmle.label | Attribute() | | src/unsafe_shell_test.py:14:34:14:39 | List [List element] | semmle.label | List [List element] | | src/unsafe_shell_test.py:14:35:14:38 | name | semmle.label | name | | src/unsafe_shell_test.py:17:32:17:35 | name | semmle.label | name | | src/unsafe_shell_test.py:20:27:20:30 | name | semmle.label | name | | src/unsafe_shell_test.py:26:20:26:23 | name | semmle.label | name | | src/unsafe_shell_test.py:29:30:29:33 | name | semmle.label | name | | src/unsafe_shell_test.py:36:22:36:25 | name | semmle.label | name | | src/unsafe_shell_test.py:39:30:39:33 | name | semmle.label | name | | src/unsafe_shell_test.py:41:24:41:24 | x | semmle.label | x | | src/unsafe_shell_test.py:42:34:42:34 | x | semmle.label | x | | src/unsafe_shell_test.py:44:20:44:23 | name | semmle.label | name | subpaths