summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Gass2025-08-26 11:50:40 +0200
committerNathan Gass2025-08-26 12:07:42 +0200
commit90a3b712e4f5df5832f219562703af4d43b1ae06 (patch)
tree829bbc3319282b15f4ba148ba483c692e30dae26
parent9d04d01fd7fe8967457e7a9f51cd0d33e8188266 (diff)
downloaditools-90a3b712e4f5df5832f219562703af4d43b1ae06.tar.gz
itools-90a3b712e4f5df5832f219562703af4d43b1ae06.tar.bz2
itools-90a3b712e4f5df5832f219562703af4d43b1ae06.zip
handle shell process substitution and - in it file wrappers
-rw-r--r--it.class3
1 files changed, 2 insertions, 1 deletions
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;
}