]> dgit.raspbian.org Git - nextcloud-desktop.git/commitdiff
Fix memory leak.
authoralex-z <blackslayer4@gmail.com>
Wed, 11 Jan 2023 18:46:01 +0000 (19:46 +0100)
committerallexzander <allexzander@users.noreply.github.com>
Wed, 18 Jan 2023 10:41:55 +0000 (11:41 +0100)
Signed-off-by: alex-z <blackslayer4@gmail.com>
src/libsync/propagatedownloadencrypted.cpp
src/libsync/propagateuploadencrypted.cpp
src/libsync/propagateuploadencrypted.h
src/libsync/vfs/cfapi/hydrationjob.cpp

index 6543c58adf9565ae86d1fc3a34f2c7e06043c3f6..77aadbce95f86284d5b9a9a8422a71766894d858 100644 (file)
@@ -73,9 +73,9 @@ void PropagateDownloadEncrypted::checkFolderEncryptedMetadata(const QJsonDocumen
   qCDebug(lcPropagateDownloadEncrypted) << "Metadata Received reading"
                                         << _item->_instruction << _item->_file << _item->_encryptedFileName;
   const QString filename = _info.fileName();
-  auto meta = new FolderMetadata(_propagator->account(), json.toJson(QJsonDocument::Compact));
-  if (meta->isMetadataSetup()) {
-      const QVector<EncryptedFile> files = meta->files();
+  const FolderMetadata metadata(_propagator->account(), json.toJson(QJsonDocument::Compact));
+  if (metadata.isMetadataSetup()) {
+      const QVector<EncryptedFile> files = metadata.files();
 
       const QString encryptedFilename = _item->_encryptedFileName.section(QLatin1Char('/'), -1);
       for (const EncryptedFile &file : files) {
index de61df307d96bd049b06c645d46fdd13d8e29e66..f595340c44860bf2aed49a30e1f105059964ce4a 100644 (file)
@@ -121,7 +121,7 @@ void PropagateUploadEncrypted::slotFolderEncryptedMetadataReceived(const QJsonDo
 {
   qCDebug(lcPropagateUploadEncrypted) << "Metadata Received, Preparing it for the new file." << json.toVariant();
   // Encrypt File!
-  _metadata = new FolderMetadata(_propagator->account(), json.toJson(QJsonDocument::Compact), statusCode);
+  _metadata.reset(new FolderMetadata(_propagator->account(), json.toJson(QJsonDocument::Compact), statusCode));
 
   if (!_metadata->isMetadataSetup()) {
       if (_isFolderLocked) {
index 7bace44bc6e87afd0a2e941d6067e29b4e9d5b11..7faa2ab906c20f20be0c7b474561ac29b00f8dbb 100644 (file)
@@ -7,6 +7,7 @@
 #include <QByteArray>
 #include <QJsonDocument>
 #include <QNetworkReply>
+#include <QScopedPointer>
 #include <QFile>
 #include <QTemporaryFile>
 
@@ -76,7 +77,7 @@ private:
 
   QByteArray _generatedKey;
   QByteArray _generatedIv;
-  FolderMetadata *_metadata;
+  QScopedPointer<FolderMetadata> _metadata;
   EncryptedFile _encryptedFile;
   QString _completeFileName;
 };
index 754c2183bb6ba511e2bf9c670104a589393be898..e09a5343c438dd63c1749ec30956f1ee02adfb55 100644 (file)
@@ -199,10 +199,10 @@ void OCC::HydrationJob::slotCheckFolderEncryptedMetadata(const QJsonDocument &js
     // TODO: the following code is borrowed from PropagateDownloadEncrypted (see HydrationJob::onNewConnection() for explanation of next steps)
     qCDebug(lcHydration) << "Metadata Received reading" << e2eMangledName();
     const QString filename = e2eMangledName();
-    auto meta = new FolderMetadata(_account, json.toJson(QJsonDocument::Compact));
+    const FolderMetadata metadata(_account, json.toJson(QJsonDocument::Compact));
 
-    if (meta->isMetadataSetup()) {
-        const QVector<EncryptedFile> files = meta->files();
+    if (metadata.isMetadataSetup()) {
+        const QVector<EncryptedFile> files = metadata.files();
 
         EncryptedFile encryptedInfo = {};