From 288d80fe33f54a88a8e33835e50a877ee54a5219 Mon Sep 17 00:00:00 2001 From: Oliver Hader Date: Sat, 24 Feb 2024 14:44:16 +0100 Subject: [PATCH] Cleanup: Use TaintKind constants instead of string values --- .../Call/FunctionCallReturnTypeFetcher.php | 7 ++++--- .../AddRemoveTaints/HtmlFunctionTainter.php | 21 ++++++++++--------- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/src/Psalm/Internal/Analyzer/Statements/Expression/Call/FunctionCallReturnTypeFetcher.php b/src/Psalm/Internal/Analyzer/Statements/Expression/Call/FunctionCallReturnTypeFetcher.php index 55557576e6b..74400b70a2b 100644 --- a/src/Psalm/Internal/Analyzer/Statements/Expression/Call/FunctionCallReturnTypeFetcher.php +++ b/src/Psalm/Internal/Analyzer/Statements/Expression/Call/FunctionCallReturnTypeFetcher.php @@ -39,6 +39,7 @@ use Psalm\Type\Atomic\TNonEmptyArray; use Psalm\Type\Atomic\TNull; use Psalm\Type\Atomic\TString; +use Psalm\Type\TaintKind; use Psalm\Type\Union; use UnexpectedValueException; @@ -646,9 +647,9 @@ private static function taintReturnType( $pattern = substr($pattern, 2, -1); if (self::simpleExclusion($pattern, $first_arg_value[0])) { - $removed_taints[] = 'html'; - $removed_taints[] = 'has_quotes'; - $removed_taints[] = 'sql'; + $removed_taints[] = TaintKind::INPUT_HTML; + $removed_taints[] = TaintKind::INPUT_HAS_QUOTES; + $removed_taints[] = TaintKind::INPUT_SQL; } } } diff --git a/src/Psalm/Internal/Provider/AddRemoveTaints/HtmlFunctionTainter.php b/src/Psalm/Internal/Provider/AddRemoveTaints/HtmlFunctionTainter.php index d49ebcee48b..bfb973faba0 100644 --- a/src/Psalm/Internal/Provider/AddRemoveTaints/HtmlFunctionTainter.php +++ b/src/Psalm/Internal/Provider/AddRemoveTaints/HtmlFunctionTainter.php @@ -7,6 +7,7 @@ use Psalm\Plugin\EventHandler\AddTaintsInterface; use Psalm\Plugin\EventHandler\Event\AddRemoveTaintsEvent; use Psalm\Plugin\EventHandler\RemoveTaintsInterface; +use Psalm\Type\TaintKind; use function count; use function strtolower; @@ -47,24 +48,24 @@ public static function addTaints(AddRemoveTaintsEvent $event): array if ($second_arg === null) { if ($statements_analyzer->getCodebase()->analysis_php_version_id >= 8_01_00) { - return ['html', 'has_quotes']; + return [TaintKind::INPUT_HTML, TaintKind::INPUT_HAS_QUOTES]; } - return ['html']; + return [TaintKind::INPUT_HTML]; } $second_arg_value = $statements_analyzer->node_data->getType($second_arg); if (!$second_arg_value || !$second_arg_value->isSingleIntLiteral()) { - return ['html']; + return [TaintKind::INPUT_HTML]; } $second_arg_value = $second_arg_value->getSingleIntLiteral()->value; if (($second_arg_value & ENT_QUOTES) === ENT_QUOTES) { - return ['html', 'has_quotes']; + return [TaintKind::INPUT_HTML, TaintKind::INPUT_HAS_QUOTES]; } - return ['html']; + return [TaintKind::INPUT_HTML]; } return []; @@ -99,24 +100,24 @@ public static function removeTaints(AddRemoveTaintsEvent $event): array if ($second_arg === null) { if ($statements_analyzer->getCodebase()->analysis_php_version_id >= 8_01_00) { - return ['html', 'has_quotes']; + return [TaintKind::INPUT_HTML, TaintKind::INPUT_HAS_QUOTES]; } - return ['html']; + return [TaintKind::INPUT_HTML]; } $second_arg_value = $statements_analyzer->node_data->getType($second_arg); if (!$second_arg_value || !$second_arg_value->isSingleIntLiteral()) { - return ['html']; + return [TaintKind::INPUT_HTML]; } $second_arg_value = $second_arg_value->getSingleIntLiteral()->value; if (($second_arg_value & ENT_QUOTES) === ENT_QUOTES) { - return ['html', 'has_quotes']; + return [TaintKind::INPUT_HTML, TaintKind::INPUT_HAS_QUOTES]; } - return ['html']; + return [TaintKind::INPUT_HTML]; } return [];