diff --git a/src/tool_formparse.c b/src/tool_formparse.c index 844b18d154e5a5..5ea14f76417c77 100644 --- a/src/tool_formparse.c +++ b/src/tool_formparse.c @@ -125,21 +125,20 @@ static struct tool_mime *tool_mime_new_filedata(struct tool_mime *parent, else { /* Not suitable for direct use, buffer stdin data. */ size_t stdinsize = 0; - if(file2memory(&data, &stdinsize, stdin) != PARAM_OK) { - /* Out of memory. */ + switch(file2memory(&data, &stdinsize, stdin)) { + case PARAM_NO_MEM: return m; - } - - if(ferror(stdin)) { + case PARAM_READ_ERROR: result = CURLE_READ_ERROR; - Curl_safefree(data); - data = NULL; - } - else if(!stdinsize) { - /* Zero-length data has been freed. Re-create it. */ - data = strdup(""); - if(!data) - return m; + break; + default: + if(!stdinsize) { + /* Zero-length data has been freed. Re-create it. */ + data = strdup(""); + if(!data) + return m; + } + break; } size = curlx_uztoso(stdinsize); origin = 0;