diff options
-rw-r--r-- | lib/transfer.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/lib/transfer.c b/lib/transfer.c index 2cc7f7881..a7ab08ecf 100644 --- a/lib/transfer.c +++ b/lib/transfer.c @@ -910,13 +910,16 @@ static CURLcode readwrite_upload(struct SessionHandle *data, (data->set.prefer_ascii) || #endif (data->set.crlf))) { - if(data->state.scratch == NULL) { - data->state.scratch = malloc(2*BUFSIZE); - if(data->state.scratch == NULL) { - failf (data, "Failed to alloc scratch buffer!"); + /* Do we need to allocate a scratch buffer? */ + if(!data->state.scratch) { + data->state.scratch = malloc(2 * BUFSIZE); + if(!data->state.scratch) { + failf(data, "Failed to alloc scratch buffer!"); + return CURLE_OUT_OF_MEMORY; } } + /* * ASCII/EBCDIC Note: This is presumably a text (not binary) * transfer so the data should already be in ASCII. |