* cleanup: remove unreachable defensive error logs in aggregate graph item validation
* fix: replace backtick operator with shell_exec() and escape args
Replace deprecated backtick execution operator with shell_exec() in
scripts/sql.php and scripts/ss_sql.php. Add escapeshellarg() to all
interpolated database credentials to prevent shell injection. Handle
null return from shell_exec() with null coalescing.
Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
* test: verify sql scripts use shell_exec with escaped arguments
Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
* chore: drop unrelated lib/api_aggregate changes
Keep PR scope focused on the issue for this branch.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
---------
Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: TheWitness <thewitness@cacti.net>
This commit corrects a previous unseen issue where the PHP environment at command line level is being populated with environment variables normally only seen when called from a web server.
issue#2304: Installation progress stays at 0%
issue#2311: Unable to update PHP location during installation due to incorrect CLI environment
The new check uses the php_sapi_name() function to verify that we are indeed at 'cli' level. All other values returned by php_sapi_name are considered non-cli including 'cli-server' which is for client/server scenarios.
Most checks have now been replaced by a single defintion ('CACTI_CLI') to define whether in CLI mode. If a script is only to be called from CLI it must either defined 'CACTI_CLI_ONLY' or include include/cli_check.php instead of include/global.php.