Quellcode durchsuchen

skip e2e encrypted files with empty filename in metadata

we cannot decrypt a file without a name

for now we will ignore them

we should probably do much more for the user but I fail to see how to
generate errors from e2ee module

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
Matthieu Gallien vor 3 Jahren
Ursprung
Commit
a8a5dfe6c6
1 geänderte Dateien mit 7 neuen und 0 gelöschten Zeilen
  1. 7 0
      src/libsync/clientsideencryption.cpp

+ 7 - 0
src/libsync/clientsideencryption.cpp

@@ -1591,8 +1591,15 @@ void FolderMetadata::setupExistingMetadata(const QByteArray& metadata)
         auto encryptedFile = fileObj["encrypted"].toString().toLocal8Bit();
         auto decryptedFile = !key.isEmpty() ? decryptJsonObject(encryptedFile, key) : QByteArray{};
         auto decryptedFileDoc = QJsonDocument::fromJson(decryptedFile);
+
         auto decryptedFileObj = decryptedFileDoc.object();
 
+        if (decryptedFileObj["filename"].toString().isEmpty()) {
+            qCDebug(lcCse) << "decrypted metadata" << decryptedFileDoc.toJson(QJsonDocument::Indented);
+            qCWarning(lcCse) << "skipping encrypted file" << file.encryptedFilename << "metadata has an empty file name";
+            continue;
+        }
+
         file.originalFilename = decryptedFileObj["filename"].toString();
         file.encryptionKey = QByteArray::fromBase64(decryptedFileObj["key"].toString().toLocal8Bit());
         file.mimetype = decryptedFileObj["mimetype"].toString().toLocal8Bit();