	protected function makeArchive($dir, $files, $name, $arc) {
		if ($arc['cmd'] === 'phpfunction') {
			if (is_callable($arc['argc'])) {
				call_user_func_array($arc['argc'], array($dir, $files, $name));
			}
		} else {
			$cwd = getcwd();
			chdir($dir);
			
			foreach($files as $i => $file) {
				$files[$i] = '.'.DIRECTORY_SEPARATOR.$file;
			}
			$files = array_map('escapeshellarg', $files);
			
			$cmd = $arc['cmd'].' '.$arc['argc'].' '.escapeshellarg($name).' '.implode(' ', $files);
			$this->procExec($cmd, $o, $c);
			chdir($cwd);
		}
		$path = $dir.DIRECTORY_SEPARATOR.$name;
		return file_exists($path) ? $path : false;
	}
The software constructs all or part of an SQL command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended SQL command when it is sent to a downstream component.