--- fenglin/lib/str_process.inc.php 2025/10/31 06:13:35 1.23 +++ fenglin/lib/str_process.inc.php 2025/10/31 10:31:55 1.24 @@ -13,18 +13,18 @@ function str_length(string $str, bool $s continue; } - if ($skip_ctrl_seq && $c == "\033" && isset($str[$i + 1]) && $str[$i + 1] == "[") // Skip control sequence + if ($skip_ctrl_seq && $c == "\033" && $i + 1 < $len && $str[$i + 1] == "[") // Skip control sequence { for ($i = $i + 2; - isset($str[$i]) && (ctype_digit($str[$i]) || $str[$i] == ';' || $str[$i] == '?'); + $i < $len && (ctype_digit($str[$i]) || $str[$i] == ';' || $str[$i] == '?'); $i++) ; - if (isset($str[$i]) && $str[$i] == 'm') // valid + if ($i < $len && $str[$i] == 'm') // valid { // skip } - else if (isset($str[$i]) && ctype_alpha($str[$i])) + else if ($i < $len && ctype_alpha($str[$i])) { // unsupported ANSI CSI command }