Adjusted buf allocated from heap in ssl_client2 to be as small as possible
diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c
index be64f6a..a9c06f4 100644
--- a/programs/ssl/ssl_client2.c
+++ b/programs/ssl/ssl_client2.c
@@ -1522,9 +1522,23 @@
goto usage;
}
- main_buf_len = MAX_REQUEST_SIZE + 1;
- buf = mbedtls_calloc( 1, MAX_REQUEST_SIZE + 1 );
- if( buf == NULL ) {
+ /* try to use as small buf from the heap as possible */
+ if( opt.request_size <= 0 )
+ {
+ main_buf_len = MBEDTLS_SSL_MAX_CONTENT_LEN + 1;
+ }
+ else if( opt.request_size < (int)sizeof(GET_REQUEST) )
+ {
+ main_buf_len = sizeof(GET_REQUEST) + 1;
+ }
+ else
+ {
+ main_buf_len = opt.request_size + 1;
+ }
+
+ buf = mbedtls_calloc( 1, main_buf_len );
+ if( buf == NULL )
+ {
mbedtls_printf( "buf allocation failed!\n" );
goto exit;
}