$this->log = $logger;
}
+ /**
+ * @param string $postFix
+ * @return string
+ */
protected function generatePath($postFix) {
if ($postFix) {
$postFix = '.' . ltrim($postFix, '.');
}
+ $postFix = str_replace(['\\', '/'], '', $postFix);
return $this->tmpBaseDir . '/oc_tmp_' . md5(time() . rand()) . $postFix;
}
->with($this->stringContains('Can not create a temporary folder in directory'));
$this->assertFalse($manager->getTemporaryFolder());
}
+
+ public function testGeneratePathTraversal() {
+ $logger = $this->getMock('\Test\NullLogger');
+ $tmpManager = \Test_Helper::invokePrivate(
+ $this->getManager($logger),
+ 'generatePath',
+ ['../Traversal\\../FileName']
+ );
+
+ $this->assertStringEndsNotWith('./Traversal\\../FileName', $tmpManager);
+ $this->assertStringEndsWith('.Traversal..FileName', $tmpManager);
+
+ }
}