Skip to content

Commit d3a81f2

Browse files
committed
Fix: Improve sanitization of folder and file names
Signed-off-by: Ahsan Ahmed <ahmedah05@outlook.com>
1 parent 4d02d2e commit d3a81f2

2 files changed

Lines changed: 4 additions & 4 deletions

File tree

lib/Service/GoogleDriveAPIService.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -540,7 +540,7 @@ private function createDirsUnder(array &$directoriesById, Folder $currentFolder,
540540
// create dir if we are on top OR if its parent is current dir
541541
if (($currentFolderId === '' && !array_key_exists($parentId, $directoriesById))
542542
|| $parentId === $currentFolderId) {
543-
$name = $dir['name'];
543+
$name = preg_replace('/[\/?<>\\:*|"]/', '-', trim((string)($dir['name'] ?? 'Untitled')));
544544
if (!$currentFolder->nodeExists($name)) {
545545
$newDir = $currentFolder->newFolder($name);
546546
} else {
@@ -623,7 +623,7 @@ private function downloadAndSaveFile(
623623
* @return string name of the file to be saved
624624
*/
625625
private function getFileName(array $fileItem, string $userId, bool $hasNameConflict): string {
626-
$fileName = preg_replace('/\/|\n|[^._A-Za-z0-9-]/', '-', $fileItem['name'] ?? 'Untitled');
626+
$fileName = preg_replace('/[\/?<>\\:*|"]/', '-', trim((string)($fileItem['name'] ?? 'Untitled')));
627627

628628
if (in_array($fileItem['mimeType'], array_values(self::DOCUMENT_MIME_TYPES))) {
629629
$documentFormat = $this->getUserDocumentFormat($userId);

lib/Service/GooglePhotosAPIService.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,7 @@ public function importPhotos(
277277
$seenIds = [];
278278
foreach ($albums as $album) {
279279
$albumId = $album['id'];
280-
$albumName = preg_replace('/\//', '_', $album['title'] ?? 'Untitled');
280+
$albumName = preg_replace('/[\/?<>\\:*|"]/', '-', trim((string)($album['title'] ?? 'Untitled')));
281281
if (!$folder->nodeExists($albumName)) {
282282
$albumFolder = $folder->newFolder($albumName);
283283
} else {
@@ -372,7 +372,7 @@ public function importPhotos(
372372
* @throws \OCP\Files\NotPermittedException
373373
*/
374374
private function getPhoto(string $userId, array $photo, Folder $albumFolder): ?int {
375-
$photoName = preg_replace('/\//', '_', $photo['filename'] ?? 'Untitled');
375+
$photoName = preg_replace('/[\/?<>\\:*|"]/', '-', trim((string)($photo['filename'] ?? 'Untitled')));
376376
if ($albumFolder->nodeExists($photoName)) {
377377
$photoName = $photo['id'] . '_' . $photoName;
378378
}

0 commit comments

Comments
 (0)