	public function LoadHashPaths($tree)
	{
		if (!$tree)
			return;

		$treePaths = array();
		$blobPaths = array();

		$args = array();
		$args[] = '--full-name';
		$args[] = '-r';
		$args[] = '-t';
		$args[] = escapeshellarg($tree->GetHash());

		$lines = explode("\n", $this->exe->Execute($tree->GetProject()->GetPath(), GIT_LS_TREE, $args));

		foreach ($lines as $line) {
			if (preg_match("/^([0-9]+) (.+) ([0-9a-fA-F]{40})\t(.+)$/", $line, $regs)) {
				switch ($regs[2]) {
					case 'tree':
						$treePaths[trim($regs[4])] = $regs[3];
						break;
					case 'blob';
						$blobPaths[trim($regs[4])] = $regs[3];
						break;
				}
			}
		}

		return array(
			$treePaths,
			$blobPaths
		);
	}
The software constructs all or part of an OS command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended OS command when it is sent to a downstream component.