json: Put signature info before data output
authorAndre Heinecke <aheinecke@intevation.de>
Thu, 24 May 2018 11:36:31 +0000 (13:36 +0200)
committerAndre Heinecke <aheinecke@intevation.de>
Thu, 24 May 2018 11:36:31 +0000 (13:36 +0200)
* src/gpgme-json.c (op_decrypt): Move info before data.

--
This should enable it to first parse signatures before
handling very large chunks of data.

src/gpgme-json.c

index 9b7e867..a755500 100644 (file)
@@ -1144,15 +1144,6 @@ op_decrypt (cjson_t request, cjson_t result)
   if (decrypt_result->is_mime)
     xjson_AddBoolToObject (result, "mime", 1);
 
-  err = make_data_object (result, output, chunksize, "plaintext", -1);
-  output = NULL;
-
-  if (err)
-    {
-      error_object (result, "Plaintext output failed: %s", gpg_strerror (err));
-      goto leave;
-    }
-
   verify_result = gpgme_op_verify_result (ctx);
   if (verify_result && verify_result->signatures)
     {
@@ -1165,6 +1156,15 @@ op_decrypt (cjson_t request, cjson_t result)
       goto leave;
     }
 
+  err = make_data_object (result, output, chunksize, "plaintext", -1);
+  output = NULL;
+
+  if (err)
+    {
+      error_object (result, "Plaintext output failed: %s", gpg_strerror (err));
+      goto leave;
+    }
+
  leave:
   release_context (ctx);
   gpgme_data_release (input);