Validate tag pointer in ccm function.

Signed-off-by: Mateusz Starzyk <mateusz.starzyk@mobica.com>
diff --git a/library/ccm.c b/library/ccm.c
index a14e025..af26de8 100644
--- a/library/ccm.c
+++ b/library/ccm.c
@@ -478,7 +478,8 @@
     ret = mbedtls_ccm_crypt( ctx, 0, 16, ctx->y, ctx->y );
     if( ret != 0 )
         return ret;
-    memcpy( tag, ctx->y, tag_len );
+    if( tag != NULL )
+        memcpy( tag, ctx->y, tag_len );
     mbedtls_ccm_clear_state(ctx);
 
     return( 0 );
diff --git a/tests/suites/test_suite_ccm.function b/tests/suites/test_suite_ccm.function
index 25cc49b..21f0699 100644
--- a/tests/suites/test_suite_ccm.function
+++ b/tests/suites/test_suite_ccm.function
@@ -48,10 +48,7 @@
     mbedtls_free( output );
     output = NULL;
 
-    if( tag->len == 0 )
-        ASSERT_ALLOC( output, 16 );
-    else
-        ASSERT_ALLOC( output, tag->len );
+    ASSERT_ALLOC( output, tag->len );
     TEST_EQUAL( 0, mbedtls_ccm_finish( ctx, output, tag->len ) );
     ASSERT_COMPARE( output, tag->len, tag->x, tag->len );
     mbedtls_free( output );