diff --git a/lib/util/ktutil.inc b/lib/util/ktutil.inc index 3d2a3ac..019ba1a 100644 --- a/lib/util/ktutil.inc +++ b/lib/util/ktutil.inc @@ -128,6 +128,27 @@ class KTUtil { return array(join(" AND ", $aStrings), $aParams); } // }}} + + // function safeShellString + function safeShellString () { + $aArgs = func_get_args(); + $aSafeArgs = array(); + if (is_array($aArgs[0])) { + $aArgs = $aArgs[0]; + } + $aSafeArgs[] = escapeshellarg(array_shift($aArgs)); + if (is_array($aArgs[0])) { + $aArgs = $aArgs; + } + foreach ($aArgs as $sArg) { + if (empty($sArg)) { + $aSafeArgs[] = "''"; + } else { + $aSafeArgs[] = escapeshellarg($sArg); + } + } + return join(" ", $aSafeArgs); + } } // }}} diff --git a/tests/util/ktutil/testSafeShellString.php b/tests/util/ktutil/testSafeShellString.php new file mode 100644 index 0000000..6fd6a67 --- /dev/null +++ b/tests/util/ktutil/testSafeShellString.php @@ -0,0 +1,34 @@ +