Files
codeql/python/ql/test/query-tests/Security/CWE-643-XPathInjection/XpathInjection.expected
yoff cf28c32fd8 Python: rebless toString churn from shared-CFG migration
The shared CFG library overrides ControlFlowNode.toString() as 'final'
(shared/controlflow/codeql/controlflow/Cfg.qll:1217), so the legacy
'ControlFlowNode for X' prefix is gone — the new toString returns just
'X' for normal nodes and 'After X' for after-nodes. This produces a
large cosmetic diff in test expected files with no semantic change.

Mass-rebless 78 .expected files whose actual output differs from the
checked-in expected only by this rename. Each file was verified to be
identical after normalising 'ControlFlowNode for ' and 'After ' away
from both sides.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-28 21:09:49 +00:00

69 lines
6.4 KiB
Plaintext

edges
| xpathBad.py:9:7:9:13 | request | xpathBad.py:10:5:10:9 | value | provenance | AdditionalTaintStep |
| xpathBad.py:10:5:10:9 | value | xpathBad.py:13:20:13:43 | After BinaryExpr | provenance | |
| xpathFlow.py:2:26:2:32 | After ImportMember | xpathFlow.py:2:26:2:32 | request | provenance | |
| xpathFlow.py:2:26:2:32 | request | xpathFlow.py:11:18:11:24 | request | provenance | |
| xpathFlow.py:2:26:2:32 | request | xpathFlow.py:20:18:20:24 | request | provenance | |
| xpathFlow.py:2:26:2:32 | request | xpathFlow.py:30:18:30:24 | request | provenance | |
| xpathFlow.py:2:26:2:32 | request | xpathFlow.py:39:18:39:24 | request | provenance | |
| xpathFlow.py:2:26:2:32 | request | xpathFlow.py:47:18:47:24 | request | provenance | |
| xpathFlow.py:11:5:11:14 | xpathQuery | xpathFlow.py:14:20:14:29 | xpathQuery | provenance | |
| xpathFlow.py:11:18:11:24 | request | xpathFlow.py:11:18:11:29 | After Attribute | provenance | AdditionalTaintStep |
| xpathFlow.py:11:18:11:29 | After Attribute | xpathFlow.py:11:18:11:44 | After Attribute() | provenance | dict.get |
| xpathFlow.py:11:18:11:44 | After Attribute() | xpathFlow.py:11:5:11:14 | xpathQuery | provenance | |
| xpathFlow.py:20:5:20:14 | xpathQuery | xpathFlow.py:23:29:23:38 | xpathQuery | provenance | |
| xpathFlow.py:20:18:20:24 | request | xpathFlow.py:20:18:20:29 | After Attribute | provenance | AdditionalTaintStep |
| xpathFlow.py:20:18:20:29 | After Attribute | xpathFlow.py:20:18:20:44 | After Attribute() | provenance | dict.get |
| xpathFlow.py:20:18:20:44 | After Attribute() | xpathFlow.py:20:5:20:14 | xpathQuery | provenance | |
| xpathFlow.py:30:5:30:14 | xpathQuery | xpathFlow.py:32:29:32:38 | xpathQuery | provenance | |
| xpathFlow.py:30:18:30:24 | request | xpathFlow.py:30:18:30:29 | After Attribute | provenance | AdditionalTaintStep |
| xpathFlow.py:30:18:30:29 | After Attribute | xpathFlow.py:30:18:30:44 | After Attribute() | provenance | dict.get |
| xpathFlow.py:30:18:30:44 | After Attribute() | xpathFlow.py:30:5:30:14 | xpathQuery | provenance | |
| xpathFlow.py:39:5:39:14 | xpathQuery | xpathFlow.py:41:31:41:40 | xpathQuery | provenance | |
| xpathFlow.py:39:18:39:24 | request | xpathFlow.py:39:18:39:29 | After Attribute | provenance | AdditionalTaintStep |
| xpathFlow.py:39:18:39:29 | After Attribute | xpathFlow.py:39:18:39:44 | After Attribute() | provenance | dict.get |
| xpathFlow.py:39:18:39:44 | After Attribute() | xpathFlow.py:39:5:39:14 | xpathQuery | provenance | |
| xpathFlow.py:47:5:47:14 | xpathQuery | xpathFlow.py:49:29:49:38 | xpathQuery | provenance | |
| xpathFlow.py:47:18:47:24 | request | xpathFlow.py:47:18:47:29 | After Attribute | provenance | AdditionalTaintStep |
| xpathFlow.py:47:18:47:29 | After Attribute | xpathFlow.py:47:18:47:44 | After Attribute() | provenance | dict.get |
| xpathFlow.py:47:18:47:44 | After Attribute() | xpathFlow.py:47:5:47:14 | xpathQuery | provenance | |
nodes
| xpathBad.py:9:7:9:13 | request | semmle.label | request |
| xpathBad.py:10:5:10:9 | value | semmle.label | value |
| xpathBad.py:13:20:13:43 | After BinaryExpr | semmle.label | After BinaryExpr |
| xpathFlow.py:2:26:2:32 | After ImportMember | semmle.label | After ImportMember |
| xpathFlow.py:2:26:2:32 | request | semmle.label | request |
| xpathFlow.py:11:5:11:14 | xpathQuery | semmle.label | xpathQuery |
| xpathFlow.py:11:18:11:24 | request | semmle.label | request |
| xpathFlow.py:11:18:11:29 | After Attribute | semmle.label | After Attribute |
| xpathFlow.py:11:18:11:44 | After Attribute() | semmle.label | After Attribute() |
| xpathFlow.py:14:20:14:29 | xpathQuery | semmle.label | xpathQuery |
| xpathFlow.py:20:5:20:14 | xpathQuery | semmle.label | xpathQuery |
| xpathFlow.py:20:18:20:24 | request | semmle.label | request |
| xpathFlow.py:20:18:20:29 | After Attribute | semmle.label | After Attribute |
| xpathFlow.py:20:18:20:44 | After Attribute() | semmle.label | After Attribute() |
| xpathFlow.py:23:29:23:38 | xpathQuery | semmle.label | xpathQuery |
| xpathFlow.py:30:5:30:14 | xpathQuery | semmle.label | xpathQuery |
| xpathFlow.py:30:18:30:24 | request | semmle.label | request |
| xpathFlow.py:30:18:30:29 | After Attribute | semmle.label | After Attribute |
| xpathFlow.py:30:18:30:44 | After Attribute() | semmle.label | After Attribute() |
| xpathFlow.py:32:29:32:38 | xpathQuery | semmle.label | xpathQuery |
| xpathFlow.py:39:5:39:14 | xpathQuery | semmle.label | xpathQuery |
| xpathFlow.py:39:18:39:24 | request | semmle.label | request |
| xpathFlow.py:39:18:39:29 | After Attribute | semmle.label | After Attribute |
| xpathFlow.py:39:18:39:44 | After Attribute() | semmle.label | After Attribute() |
| xpathFlow.py:41:31:41:40 | xpathQuery | semmle.label | xpathQuery |
| xpathFlow.py:47:5:47:14 | xpathQuery | semmle.label | xpathQuery |
| xpathFlow.py:47:18:47:24 | request | semmle.label | request |
| xpathFlow.py:47:18:47:29 | After Attribute | semmle.label | After Attribute |
| xpathFlow.py:47:18:47:44 | After Attribute() | semmle.label | After Attribute() |
| xpathFlow.py:49:29:49:38 | xpathQuery | semmle.label | xpathQuery |
subpaths
#select
| xpathBad.py:13:20:13:43 | After BinaryExpr | xpathBad.py:9:7:9:13 | request | xpathBad.py:13:20:13:43 | After BinaryExpr | XPath expression depends on a $@. | xpathBad.py:9:7:9:13 | request | user-provided value |
| xpathFlow.py:14:20:14:29 | xpathQuery | xpathFlow.py:2:26:2:32 | After ImportMember | xpathFlow.py:14:20:14:29 | xpathQuery | XPath expression depends on a $@. | xpathFlow.py:2:26:2:32 | After ImportMember | user-provided value |
| xpathFlow.py:23:29:23:38 | xpathQuery | xpathFlow.py:2:26:2:32 | After ImportMember | xpathFlow.py:23:29:23:38 | xpathQuery | XPath expression depends on a $@. | xpathFlow.py:2:26:2:32 | After ImportMember | user-provided value |
| xpathFlow.py:32:29:32:38 | xpathQuery | xpathFlow.py:2:26:2:32 | After ImportMember | xpathFlow.py:32:29:32:38 | xpathQuery | XPath expression depends on a $@. | xpathFlow.py:2:26:2:32 | After ImportMember | user-provided value |
| xpathFlow.py:41:31:41:40 | xpathQuery | xpathFlow.py:2:26:2:32 | After ImportMember | xpathFlow.py:41:31:41:40 | xpathQuery | XPath expression depends on a $@. | xpathFlow.py:2:26:2:32 | After ImportMember | user-provided value |
| xpathFlow.py:49:29:49:38 | xpathQuery | xpathFlow.py:2:26:2:32 | After ImportMember | xpathFlow.py:49:29:49:38 | xpathQuery | XPath expression depends on a $@. | xpathFlow.py:2:26:2:32 | After ImportMember | user-provided value |