From 90a3b712e4f5df5832f219562703af4d43b1ae06 Mon Sep 17 00:00:00 2001 From: Nathan Gass Date: Tue, 26 Aug 2025 11:50:40 +0200 Subject: handle shell process substitution and - in it file wrappers --- it.class | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/it.class b/it.class index e43b794..88724b1 100644 --- a/it.class +++ b/it.class @@ -1169,7 +1169,7 @@ static function file_get($filename, $p = array()) { if (isset($p['it_cache']) && ($key = "it_file_get_" . md5(json_encode([$filename, $p]))) && ($result = it_cache::get($key, $p['it_cache'])) !== null) return $result; - elseif (($data = it::file_get_contents($filename == "-" ? "php://stdin" : $filename)) !== false) + elseif (($data = it::file_get_contents($filename)) !== false) { if ($p['keyval']) { @@ -1302,6 +1302,7 @@ static function safe_filename($filename) { if (it::match("\.\./", $filename)) it::fatal(['title' => "../ contained in '$filename', aborted"]); + $filename = it::replace(['^/dev/fd/(\d+)$' => 'php://fd/$1', '^-$' => 'php://stdin'], $filename); return $filename; } -- cgit v1.2.3