diff --git a/include/mbedtls/config.h b/include/mbedtls/config.h
index 0e539be..dce8f48 100644
--- a/include/mbedtls/config.h
+++ b/include/mbedtls/config.h
@@ -2952,6 +2952,18 @@
 //#define MBEDTLS_MEMORY_BUFFER_ALLOC_C
 
 /**
+ * \def MBEDTLS_PLATFORM_FAULT_CALLBACKS
+ *
+ * Uncomment to provide your own alternate implementation for mbedtls_platform_fault(),
+ * used in library/platform_util.c to signal a fault injection in either
+ * mbedtls_platform_memcpy or mbedtls_platform_memset.
+ *
+ * You will need to provide a header "platform_fault.h" and an implementation at
+ * compile time.
+ */
+//#define MBEDTLS_PLATFORM_FAULT_CALLBACKS
+
+/**
  * \def MBEDTLS_NET_C
  *
  * Enable the TCP and UDP over IPv6/IPv4 networking routines.
diff --git a/library/platform_util.c b/library/platform_util.c
index 19ba7b9..ecfdb84 100644
--- a/library/platform_util.c
+++ b/library/platform_util.c
@@ -48,6 +48,12 @@
 #include "mbedtls/entropy_poll.h"
 #endif
 
+#if defined(MBEDTLS_PLATFORM_FAULT_CALLBACKS)
+#include "platform_fault.h"
+#else
+static void mbedtls_platform_fault(){}
+#endif
+
 #include <stddef.h>
 #include <string.h>
 
@@ -167,7 +173,7 @@
             return ptr;
         }
     }
-
+    mbedtls_platform_fault();
     return NULL;
 }
 
@@ -207,6 +213,7 @@
             return dst;
         }
     }
+    mbedtls_platform_fault();
     return NULL;
 }
 
diff --git a/library/ssl_tls.c b/library/ssl_tls.c
index f6244dc..a33760f 100644
--- a/library/ssl_tls.c
+++ b/library/ssl_tls.c
@@ -12709,6 +12709,7 @@
 #endif
         mbedtls_platform_zeroize( ssl->out_buf, out_buf_len );
         mbedtls_free( ssl->out_buf );
+        ssl->out_buf = NULL;
     }
 
     if( ssl->in_buf != NULL )
@@ -12720,6 +12721,7 @@
 #endif
         mbedtls_platform_zeroize( ssl->in_buf, in_buf_len );
         mbedtls_free( ssl->in_buf );
+        ssl->in_buf = NULL;
     }
 
 #if defined(MBEDTLS_ZLIB_SUPPORT)
diff --git a/library/version_features.c b/library/version_features.c
index b0e1637..8044dc9 100644
--- a/library/version_features.c
+++ b/library/version_features.c
@@ -729,6 +729,9 @@
 #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C)
     "MBEDTLS_MEMORY_BUFFER_ALLOC_C",
 #endif /* MBEDTLS_MEMORY_BUFFER_ALLOC_C */
+#if defined(MBEDTLS_PLATFORM_FAULT_CALLBACKS)
+    "MBEDTLS_PLATFORM_FAULT_CALLBACKS",
+#endif /* MBEDTLS_PLATFORM_FAULT_CALLBACKS */
 #if defined(MBEDTLS_NET_C)
     "MBEDTLS_NET_C",
 #endif /* MBEDTLS_NET_C */
diff --git a/programs/ssl/query_config.c b/programs/ssl/query_config.c
index bc6499d..e86fdb5 100644
--- a/programs/ssl/query_config.c
+++ b/programs/ssl/query_config.c
@@ -1986,6 +1986,14 @@
     }
 #endif /* MBEDTLS_MEMORY_BUFFER_ALLOC_C */
 
+#if defined(MBEDTLS_PLATFORM_FAULT_CALLBACKS)
+    if( strcmp( "MBEDTLS_PLATFORM_FAULT_CALLBACKS", config ) == 0 )
+    {
+        MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_FAULT_CALLBACKS );
+        return( 0 );
+    }
+#endif /* MBEDTLS_PLATFORM_FAULT_CALLBACKS */
+
 #if defined(MBEDTLS_NET_C)
     if( strcmp( "MBEDTLS_NET_C", config ) == 0 )
     {
diff --git a/scripts/config.pl b/scripts/config.pl
index 0a65ef4..82d7113 100755
--- a/scripts/config.pl
+++ b/scripts/config.pl
@@ -146,6 +146,7 @@
 MBEDTLS_SSL_TRANSFORM_OPTIMIZE_CIPHERS
 MBEDTLS_VALIDATE_SSL_KEYS_INTEGRITY
 MBEDTLS_OPTIMIZE_TINYCRYPT_ASM
+MBEDTLS_PLATFORM_FAULT_CALLBACKS
 _ALT\s*$
 );
 
