Explicitly allow NULL as an argument to mbedtls_ccm_free()
diff --git a/include/mbedtls/ccm.h b/include/mbedtls/ccm.h
index 0eb1abe..6210c1f 100644
--- a/include/mbedtls/ccm.h
+++ b/include/mbedtls/ccm.h
@@ -109,7 +109,9 @@
  * \brief   This function releases and clears the specified CCM context
  *          and underlying cipher sub-context.
  *
- * \param ctx       The CCM context to clear. Must not be \c NULL.
+ * \param ctx       The CCM context to clear.
+ *
+ * \note            If ctx is \c NULL, the function has no effect.
  */
 void mbedtls_ccm_free( mbedtls_ccm_context *ctx );
 
diff --git a/library/ccm.c b/library/ccm.c
index 4bb3642..ad0d71b 100644
--- a/library/ccm.c
+++ b/library/ccm.c
@@ -106,7 +106,8 @@
  */
 void mbedtls_ccm_free( mbedtls_ccm_context *ctx )
 {
-    CCM_VALIDATE( ctx != NULL );
+    if( ctx == NULL )
+        return;
     mbedtls_cipher_free( &ctx->cipher_ctx );
     mbedtls_platform_zeroize( ctx, sizeof( mbedtls_ccm_context ) );
 }