diff OrthancServer/Sources/ServerJobs/StorageCommitmentScpJob.cpp @ 4206:171af1567473

cppcheck
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 17 Sep 2020 20:49:15 +0200
parents d962a2996637
children d9473bd5ed43
line wrap: on
line diff
--- a/OrthancServer/Sources/ServerJobs/StorageCommitmentScpJob.cpp	Thu Sep 17 17:58:19 2020 +0200
+++ b/OrthancServer/Sources/ServerJobs/StorageCommitmentScpJob.cpp	Thu Sep 17 20:49:15 2020 +0200
@@ -107,7 +107,8 @@
                   size_t index) :
       that_(that),
       index_(index),
-      hasFailureReason_(false)
+      hasFailureReason_(false),
+      failureReason_(StorageCommitmentFailureReason_Success)
     {
     }
 
@@ -426,11 +427,18 @@
   StorageCommitmentScpJob::StorageCommitmentScpJob(ServerContext& context,
                                                    const Json::Value& serialized) :
     SetOfCommandsJob(new Unserializer(*this), serialized),
-    context_(context)
+    context_(context),
+    transactionUid_(SerializationToolbox::ReadString(serialized, TRANSACTION_UID)),
+    calledAet_(SerializationToolbox::ReadString(serialized, CALLED_AET))
+    // "ready_" is initialized by the unserializer
   {
-    transactionUid_ = SerializationToolbox::ReadString(serialized, TRANSACTION_UID);
+    if (serialized.type() != Json::objectValue ||
+        !serialized.isMember(REMOTE_MODALITY))
+    {
+      throw OrthancException(ErrorCode_BadFileFormat);
+    }
+    
     remoteModality_ = RemoteModalityParameters(serialized[REMOTE_MODALITY]);
-    calledAet_ = SerializationToolbox::ReadString(serialized, CALLED_AET);
     SerializationToolbox::ReadArrayOfStrings(sopClassUids_, serialized, SOP_CLASS_UIDS);
     SerializationToolbox::ReadArrayOfStrings(sopInstanceUids_, serialized, SOP_INSTANCE_UIDS);
   }