- Change buffer size on mpi_write_file() to cover larger size MPIs
diff --git a/include/polarssl/bignum.h b/include/polarssl/bignum.h
index da93802..beecd89 100644
--- a/include/polarssl/bignum.h
+++ b/include/polarssl/bignum.h
@@ -70,14 +70,15 @@
#define POLARSSL_MPI_MAX_BITS ( 8 * POLARSSL_MPI_MAX_SIZE ) /**< Maximum number of bits for usable MPIs. */
/*
- * When reading from files with mpi_read_file() the buffer should have space
+ * When reading from files with mpi_read_file() and writing to files with
+ * mpi_write_file() the buffer should have space
* for a (short) label, the MPI (in the provided radix), the newline
* characters and the '\0'.
*
* By default we assume at least a 10 char label, a minimum radix of 10
* (decimal) and a maximum of 4096 bit numbers (1234 decimal chars).
*/
-#define POLARSSL_MPI_READ_BUFFER_SIZE 1250
+#define POLARSSL_MPI_RW_BUFFER_SIZE 1250
/*
* Define the base integer type, architecture-wise
diff --git a/library/bignum.c b/library/bignum.c
index 9af6980..cbd25ab 100644
--- a/library/bignum.c
+++ b/library/bignum.c
@@ -444,7 +444,7 @@
* Buffer should have space for (short) label and decimal formatted MPI,
* newline characters and '\0'
*/
- char s[ POLARSSL_MPI_READ_BUFFER_SIZE ];
+ char s[ POLARSSL_MPI_RW_BUFFER_SIZE ];
memset( s, 0, sizeof( s ) );
if( fgets( s, sizeof( s ) - 1, fin ) == NULL )
@@ -473,9 +473,10 @@
int ret;
size_t n, slen, plen;
/*
- * Buffer should have space for minus sign, hexified MPI and '\0'
+ * Buffer should have space for (short) label and decimal formatted MPI,
+ * newline characters and '\0'
*/
- char s[ 2 * POLARSSL_MPI_MAX_SIZE + 2 ];
+ char s[ POLARSSL_MPI_RW_BUFFER_SIZE ];
n = sizeof( s );
memset( s, 0, n );