Skip to content

Commit 4bd8995

Browse files
authored
Merge pull request #715 from code16/cwe-22
Improve FileUtil
2 parents 8067cd7 + a26787f commit 4bd8995

2 files changed

Lines changed: 14 additions & 5 deletions

File tree

src/Utils/FileUtil.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,12 @@ public function findAvailableName(string $fileName, string $path = '', string $d
2323

2424
public function explodeExtension(string $fileName): array
2525
{
26-
if (($pos = strrpos($fileName, '.')) !== false) {
27-
$ext = substr($fileName, $pos);
28-
$fileName = substr($fileName, 0, $pos);
29-
}
26+
$pathinfo = pathinfo($fileName);
3027

31-
return [$fileName, $ext ?? ''];
28+
return [
29+
$pathinfo['filename'] ?? '',
30+
isset($pathinfo['extension']) ? '.'.$pathinfo['extension'] : '',
31+
];
3232
}
3333

3434
private function normalizeName(string $fileName): array|string|null

tests/Unit/Utils/FileUtilTest.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,3 +47,12 @@
4747
$fileUtil->findAvailableName('ôéàtest*.txt', 'tmp', 'local'),
4848
);
4949
});
50+
51+
it('doesn’t care about relative path', function () {
52+
$fileUtil = new FileUtil();
53+
54+
$this->assertEquals(
55+
'test.txt',
56+
$fileUtil->findAvailableName('../../../test.txt', 'tmp', 'local'),
57+
);
58+
});

0 commit comments

Comments
 (0)