diff options
-rw-r--r-- | lib/curl_schannel.c | 27 | ||||
-rw-r--r-- | lib/curl_schannel.h | 10 |
2 files changed, 7 insertions, 30 deletions
diff --git a/lib/curl_schannel.c b/lib/curl_schannel.c index 7db5f7a0d..f57dc1f4d 100644 --- a/lib/curl_schannel.c +++ b/lib/curl_schannel.c @@ -284,7 +284,7 @@ schannel_connect_step2(struct connectdata *conn, int sockindex) CURLcode code; bool doread; - doread = (connssl->connecting_state != ssl_connect_2_writing)?TRUE:FALSE; + doread = (connssl->connecting_state != ssl_connect_2_writing) ? TRUE : FALSE; infof(data, "schannel: SSL/TLS connection with %s port %hu (step 2/3)\n", conn->host.name, conn->remote_port); @@ -302,12 +302,7 @@ schannel_connect_step2(struct connectdata *conn, int sockindex) /* if we need a bigger buffer to read a full message, increase buffer now */ if(connssl->encdata_length - connssl->encdata_offset < - CURL_SCHANNEL_BUFFER_MIN_SIZE) { - if(connssl->encdata_length >= CURL_SCHANNEL_BUFFER_MAX_SIZE) { - failf(data, "schannel: memory buffer size limit reached"); - return CURLE_OUT_OF_MEMORY; - } - + CURL_SCHANNEL_BUFFER_FREE_SIZE) { /* increase internal encrypted data buffer */ connssl->encdata_length *= CURL_SCHANNEL_BUFFER_STEP_FACTOR; connssl->encdata_buffer = realloc(connssl->encdata_buffer, @@ -831,13 +826,7 @@ schannel_recv(struct connectdata *conn, int sockindex, /* increase buffer in order to fit the requested amount of data */ while(connssl->encdata_length - connssl->encdata_offset < - CURL_SCHANNEL_BUFFER_MIN_SIZE || connssl->encdata_length < len) { - if(connssl->encdata_length >= CURL_SCHANNEL_BUFFER_MAX_SIZE) { - failf(data, "schannel: memory buffer size limit reached"); - *err = CURLE_OUT_OF_MEMORY; - return -1; - } - + CURL_SCHANNEL_BUFFER_FREE_SIZE || connssl->encdata_length < len) { /* increase internal encrypted data buffer */ connssl->encdata_length *= CURL_SCHANNEL_BUFFER_STEP_FACTOR; connssl->encdata_buffer = realloc(connssl->encdata_buffer, @@ -907,16 +896,10 @@ schannel_recv(struct connectdata *conn, int sockindex, inbuf[1].cbBuffer); /* increase buffer in order to fit the received amount of data */ - size = inbuf[1].cbBuffer > CURL_SCHANNEL_BUFFER_MIN_SIZE ? - inbuf[1].cbBuffer : CURL_SCHANNEL_BUFFER_MIN_SIZE; + size = inbuf[1].cbBuffer > CURL_SCHANNEL_BUFFER_FREE_SIZE ? + inbuf[1].cbBuffer : CURL_SCHANNEL_BUFFER_FREE_SIZE; while(connssl->decdata_length - connssl->decdata_offset < size || connssl->decdata_length < len) { - if(connssl->decdata_length >= CURL_SCHANNEL_BUFFER_MAX_SIZE) { - failf(data, "schannel: memory buffer size limit reached"); - *err = CURLE_OUT_OF_MEMORY; - return -1; - } - /* increase internal decrypted data buffer */ connssl->decdata_length *= CURL_SCHANNEL_BUFFER_STEP_FACTOR; connssl->decdata_buffer = realloc(connssl->decdata_buffer, diff --git a/lib/curl_schannel.h b/lib/curl_schannel.h index 909ed1857..37126ac7d 100644 --- a/lib/curl_schannel.h +++ b/lib/curl_schannel.h @@ -93,14 +93,8 @@ #endif -#ifdef BUFSIZE -#define CURL_SCHANNEL_BUFFER_INIT_SIZE BUFSIZE -#else -#define CURL_SCHANNEL_BUFFER_INIT_SIZE 4096 -#endif - -#define CURL_SCHANNEL_BUFFER_MIN_SIZE CURL_SCHANNEL_BUFFER_INIT_SIZE / 2 -#define CURL_SCHANNEL_BUFFER_MAX_SIZE CURL_SCHANNEL_BUFFER_INIT_SIZE * 128 +#define CURL_SCHANNEL_BUFFER_INIT_SIZE 4096 +#define CURL_SCHANNEL_BUFFER_FREE_SIZE 1024 #define CURL_SCHANNEL_BUFFER_STEP_FACTOR 2 |