diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function
index 991b10a..a7ba675 100644
--- a/tests/suites/test_suite_psa_crypto.function
+++ b/tests/suites/test_suite_psa_crypto.function
@@ -3292,7 +3292,10 @@
                                          part_length, part_data,
                                          part_data_size, &output_part_length ) );
 
-            memcpy( ( output_data + part_offset ), part_data, output_part_length );
+            if( output_data && output_part_length )
+            {
+                memcpy( ( output_data + part_offset ), part_data, output_part_length );
+            }
 
             part_offset += part_length;
             output_length += output_part_length;
@@ -3312,13 +3315,19 @@
                                  tag_buffer, tag_length,
                                  &tag_size ) );
 
-    memcpy( ( output_data + output_length ), final_data, output_part_length );
+    if( output_data && output_part_length )
+    {
+        memcpy( ( output_data + output_length ), final_data, output_part_length );
+    }
 
     TEST_EQUAL(tag_length, tag_size);
 
     output_length += output_part_length;
 
-    memcpy( ( output_data + output_length ), tag_buffer, tag_length );
+    if( output_data && tag_length )
+    {
+        memcpy( ( output_data + output_length ), tag_buffer, tag_length );
+    }
 
     output_length += tag_length;
 
@@ -3516,7 +3525,10 @@
                 goto exit;
             }
 
-            memcpy( ( output_data + part_offset ), part_data, output_part_length );
+            if( output_data && output_part_length )
+            {
+                memcpy( ( output_data + part_offset ), part_data, output_part_length );
+            }
 
             part_offset += part_length;
             output_length += output_part_length;
@@ -3547,7 +3559,10 @@
         goto exit;
     }
 
-    memcpy( ( output_data + output_length ), final_data, output_part_length );
+    if( output_data &&output_part_length )
+    {
+        memcpy( ( output_data + output_length ), final_data, output_part_length );
+    }
 
     output_length += output_part_length;
 
@@ -3666,7 +3681,10 @@
                                              part_length, part_data,
                                              part_data_size, &output_part_length ) );
 
-                memcpy( ( output_data2 + part_offset ), part_data, output_part_length );
+                if( output_data2 && output_part_length )
+                {
+                    memcpy( ( output_data2 + part_offset ), part_data, output_part_length );
+                }
 
                 part_offset += part_length;
                 output_length2 += output_part_length;
@@ -3684,7 +3702,10 @@
                                      &output_part_length,
                                      tag_buffer, tag_length ) );
 
-        memcpy( ( output_data2 + output_length2 ), final_data, output_part_length);
+        if( output_data2 && output_part_length )
+        {
+            memcpy( ( output_data2 + output_length2 ), final_data, output_part_length);
+        }
 
         output_length2 += output_part_length;
 
@@ -3872,7 +3893,10 @@
                 goto exit;
             }
 
-            memcpy( ( output_data + part_offset ), part_data, output_part_length );
+            if( output_data && output_part_length )
+            {
+                memcpy( ( output_data + part_offset ), part_data, output_part_length );
+            }
 
             part_offset += part_length;
             output_length += output_part_length;
@@ -3903,7 +3927,10 @@
         goto exit;
     }
 
-    memcpy( ( output_data + output_length ), final_data, output_part_length );
+    if( output_data && output_part_length )
+    {
+        memcpy( ( output_data + output_length ), final_data, output_part_length );
+    }
 
     output_length += output_part_length;
 
