Code Duplication    Length = 14-14 lines in 2 locations

includes/TemplateParser.php 1 location

@@ 56-69 (lines=14) @@
53
	 */
54
	protected function getTemplateFilename( $templateName ) {
55
		// Prevent upwards directory traversal using same methods as Title::secureAndSplit
56
		if (
57
			strpos( $templateName, '.' ) !== false &&
58
			(
59
				$templateName === '.' || $templateName === '..' ||
60
				strpos( $templateName, './' ) === 0 ||
61
				strpos( $templateName, '../' ) === 0 ||
62
				strpos( $templateName, '/./' ) !== false ||
63
				strpos( $templateName, '/../' ) !== false ||
64
				substr( $templateName, -2 ) === '/.' ||
65
				substr( $templateName, -3 ) === '/..'
66
			)
67
		) {
68
			throw new UnexpectedValueException( "Malformed \$templateName: $templateName" );
69
		}
70
71
		return "{$this->templateDir}/{$templateName}.mustache";
72
	}

includes/title/MediaWikiTitleCodec.php 1 location

@@ 389-402 (lines=14) @@
386
		# Pages with "/./" or "/../" appearing in the URLs will often be un-
387
		# reachable due to the way web browsers deal with 'relative' URLs.
388
		# Also, they conflict with subpage syntax.  Forbid them explicitly.
389
		if (
390
			strpos( $dbkey, '.' ) !== false &&
391
			(
392
				$dbkey === '.' || $dbkey === '..' ||
393
				strpos( $dbkey, './' ) === 0 ||
394
				strpos( $dbkey, '../' ) === 0 ||
395
				strpos( $dbkey, '/./' ) !== false ||
396
				strpos( $dbkey, '/../' ) !== false ||
397
				substr( $dbkey, -2 ) == '/.' ||
398
				substr( $dbkey, -3 ) == '/..'
399
			)
400
		) {
401
			throw new MalformedTitleException( 'title-invalid-relative', $text );
402
		}
403
404
		# Magic tilde sequences? Nu-uh!
405
		if ( strpos( $dbkey, '~~~' ) !== false ) {