From 72b1b2091eb784b3f24dc415d44e865a455948c8 Mon Sep 17 00:00:00 2001
From: Christian A. Weber
Date: Sun, 28 Mar 2021 19:45:44 +0200
Subject: it::cdist() does nothing if no filenames are given, it::error() if
 filename=false

---
 it.class | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/it.class b/it.class
index 9dc1960..c219f19 100644
--- a/it.class
+++ b/it.class
@@ -753,6 +753,14 @@ static function cdist(...$args)
 			$files = array_merge((array)$files, (array)$arg);
 	}
 
+	# no files: return early, don't execute cdist -q ''
+	if (!is_array($files) || !count($files))
+		return true;
+
+	# Check for invalid file names
+	if (in_array(false, $files, true) || in_array(null, $files, true))
+		return it::error("invalid file name(s)");
+
 	return ($errs = it::exec('cdist -q {-opts} {files} 2>&1', ['-opts' => $opts, 'files' => $files])) ? it::error(['title' => $errs]) : true;
 }
 
-- 
cgit v1.2.3