			$trimmed = trim($line);

			if ((strlen($trimmed) > 0) || ($readInitialData === true)) {
				$comment[] = $line;
			}
			$readInitialData = true;

		}

		switch ($type) {
			case 'commit':
				$object = $objectHash;
				$commitHash = $objectHash;
				break;
			case 'tag':
				$args = array();
				$args[] = 'tag';
				$args[] = $objectHash;
				$ret = $this->exe->Execute($tag->GetProject()->GetPath(), GIT_CAT_FILE, $args);
				$lines = explode("\n", $ret);
				foreach ($lines as $i => $line) {
					if (preg_match('/^tag (.+)$/', $line, $regs)) {
						$name = trim($regs[1]);
						$object = $name;
					}
				}
				break;
			case 'blob':
				$object = $objectHash;
				break;
		}

		return array(
			$type,
			$object,
			$commitHash,
			$tagger,
			$taggerEpoch,
			$taggerTimezone,
			$comment
		);

	}
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.