From 0788dc4e813cfbb15b30650125cd5f9171d570f9 Mon Sep 17 00:00:00 2001 From: Michal Kleiner Date: Thu, 3 Mar 2022 14:57:44 +1300 Subject: [PATCH] [Backport] Let symfony/process escape each command part separately (#315) --- .../Reindex/Handlers/SolrReindexImmediateHandler.php | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/Solr/Reindex/Handlers/SolrReindexImmediateHandler.php b/src/Solr/Reindex/Handlers/SolrReindexImmediateHandler.php index ca610cd..d193fd1 100644 --- a/src/Solr/Reindex/Handlers/SolrReindexImmediateHandler.php +++ b/src/Solr/Reindex/Handlers/SolrReindexImmediateHandler.php @@ -75,17 +75,12 @@ class SolrReindexImmediateHandler extends SolrReindexBase $taskName ) { $indexClass = get_class($indexInstance); - - // Build script parameters - $indexClassEscaped = $indexClass; $statevar = json_encode($state); if (strpos(PHP_OS, "WIN") !== false) { $statevar = '"' . str_replace('"', '\\"', $statevar) . '"'; } else { $statevar = "'" . $statevar . "'"; - $class = addslashes($class); - $indexClassEscaped = addslashes($indexClass); } $php = Environment::getEnv('SS_PHP_BIN') ?: Config::inst()->get(static::class, 'php_bin'); @@ -93,11 +88,12 @@ class SolrReindexImmediateHandler extends SolrReindexBase // Build script line $frameworkPath = ModuleLoader::getModule('silverstripe/framework')->getPath(); $scriptPath = sprintf("%s%scli-script.php", $frameworkPath, DIRECTORY_SEPARATOR); - $scriptTask = "{$php} {$scriptPath} dev/tasks/{$taskName}"; $cmd = [ - $scriptTask, - "index={$indexClassEscaped}", + $php, + $scriptPath, + "dev/tasks/{$taskName}", + "index={$indexClass}", "class={$class}", "group={$group}", "groups={$groups}",