Description: Support PHP 8.5
 - The backtick operator is now deprecated in favor of shell_exec.
 - Terminating case statements with a semicolon instead of a colon has been deprecated.
 - xml_parser_free was a noop since PHP 8.0 and is now deprecated.
Author: Athos Ribeiro athos@ubuntu.com
Forwarded: https://github.com/Cacti/cacti/pull/6568
Last-Update: 2026-01-26
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
--- a/lib/poller.php
+++ b/lib/poller.php
@@ -49,7 +49,7 @@
 
 		pclose($fp);
 	} else {
-		$output = `$command`;
+		$output = shell_exec($command);
 	}
 
 	return $output;
@@ -112,7 +112,7 @@
 
 			pclose($fp);
 		} else {
-			$output = `$command`;
+			$output = shell_exec($command);
 		}
 	}
 
--- a/lib/xml.php
+++ b/lib/xml.php
@@ -32,7 +32,9 @@
 	xml_parser_set_option($p, XML_OPTION_SKIP_WHITE, 1);
 	xml_parser_set_option($p, XML_OPTION_CASE_FOLDING, 0);
 	xml_parse_into_struct($p, $data, $vals, $index);
-	xml_parser_free($p);
+	if (version_compare(PHP_VERSION, '8.0', '<')) {
+		xml_parser_free($p);
+	}
 
 	$tree = array();
 	$i = 0;
@@ -116,7 +118,9 @@
 	xml_parser_set_option($p, XML_OPTION_CASE_FOLDING, 0);
 	xml_parser_set_option($p, XML_OPTION_TARGET_ENCODING, 'UTF-8');
 	xml_parse_into_struct($p, $data, $vals, $index);
-	xml_parser_free($p);
+	if (version_compare(PHP_VERSION, '8.0', '<')) {
+		xml_parser_free($p);
+	}
 
 	$tree = array();
 	$i = 0;
--- a/include/vendor/phpsnmp/mib_parser.php
+++ b/include/vendor/phpsnmp/mib_parser.php
@@ -166,7 +166,7 @@
 						}
 
 						break;
-					case '"';
+					case '"':
 						$in_quote = true;
 
 						break;
