Decouple if statement in psa_raw_key_agreement exit.

Signed-off-by: Thomas Daubney <thomas.daubney@arm.com>
diff --git a/library/psa_crypto.c b/library/psa_crypto.c
index dac487e..e0b91c7 100644
--- a/library/psa_crypto.c
+++ b/library/psa_crypto.c
@@ -5332,17 +5332,21 @@
                                             output_length);
 
 exit:
+    /* Check for successful allocation of output,
+     * with an unsuccessful status. */
     if (output != NULL && status != PSA_SUCCESS) {
         /* If an error happens and is not handled properly, the output
-        * may be used as a key to protect sensitive data. Arrange for such
-        * a key to be random, which is likely to result in decryption or
-        * verification errors. This is better than filling the buffer with
-        * some constant data such as zeros, which would result in the data
-        * being protected with a reproducible, easily knowable key.
-        */
+         * may be used as a key to protect sensitive data. Arrange for such
+         * a key to be random, which is likely to result in decryption or
+         * verification errors. This is better than filling the buffer with
+         * some constant data such as zeros, which would result in the data
+         * being protected with a reproducible, easily knowable key.
+         */
         psa_generate_random(output, output_size);
         *output_length = output_size;
-    } else {
+    }
+
+    if (output == NULL) {
         /* output allocation failed. */
         *output_length = 0;
     }