Memory-allocation abstraction layer and buffer-based allocator added
diff --git a/library/ecp.c b/library/ecp.c
index d2d2e18..af18e5b 100644
--- a/library/ecp.c
+++ b/library/ecp.c
@@ -37,6 +37,14 @@
 #if defined(POLARSSL_ECP_C)
 
 #include "polarssl/ecp.h"
+
+#if defined(POLARSSL_MEMORY_C)
+#include "polarssl/memory.h"
+#else
+#define polarssl_malloc     malloc
+#define polarssl_free       free
+#endif
+
 #include <limits.h>
 #include <stdlib.h>
 
@@ -793,7 +801,7 @@
     if( t_len < 2 )
         return( ecp_normalize( grp, T ) );
 
-    if( ( c = (mpi *) malloc( t_len * sizeof( mpi ) ) ) == NULL )
+    if( ( c = (mpi *) polarssl_malloc( t_len * sizeof( mpi ) ) ) == NULL )
         return( POLARSSL_ERR_ECP_GENERIC );
 
     mpi_init( &u ); mpi_init( &Zi ); mpi_init( &ZZi );
@@ -848,7 +856,7 @@
     mpi_free( &u ); mpi_free( &Zi ); mpi_free( &ZZi );
     for( i = 0; i < t_len; i++ )
         mpi_free( &c[i] );
-    free( c );
+    polarssl_free( c );
 
     return( ret );
 }