diff --git a/tests/suites/test_suite_gcm.function b/tests/suites/test_suite_gcm.function
index 107cc8d..e7b024e 100644
--- a/tests/suites/test_suite_gcm.function
+++ b/tests/suites/test_suite_gcm.function
@@ -631,10 +631,6 @@
         buffer_len += (16 - (buffer_len % 16));
     }
     TEST_CALLOC(buffer, buffer_len);
-    if (buffer == NULL) {
-        TEST_FAIL("Could not allocate memory for input output buffer overlap");
-        goto exit;
-    }
     memcpy(buffer, src_str->x, src_str->len);
 
     memset(tag_output, 0x00, 16);
@@ -662,9 +658,7 @@
     }
 
 exit:
-    if (buffer != NULL) {
-        free(buffer);
-    }
+    mbedtls_free(buffer);
     mbedtls_gcm_free(&ctx);
     BLOCK_CIPHER_PSA_DONE();
 }
@@ -696,10 +690,6 @@
         buffer_len += (16 - (buffer_len % 16));
     }
     TEST_CALLOC(buffer, buffer_len);
-    if (buffer == NULL) {
-        TEST_FAIL("Could not allocate memory for input output buffer overlap");
-        goto exit;
-    }
     memcpy(buffer, src_str->x, src_str->len);
 
     TEST_ASSERT(mbedtls_gcm_setkey(&ctx, cipher_id, key_str->x, key_str->len * 8) == init_result);
@@ -736,9 +726,7 @@
     }
 
 exit:
-    if (buffer != NULL) {
-        free(buffer);
-    }
+    mbedtls_free(buffer);
     mbedtls_gcm_free(&ctx);
     BLOCK_CIPHER_PSA_DONE();
 
