diff options
-rw-r--r-- | lib/formdata.c | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/lib/formdata.c b/lib/formdata.c index 6103959cd..17f474487 100644 --- a/lib/formdata.c +++ b/lib/formdata.c @@ -728,19 +728,14 @@ int curl_formget(struct curl_httppost *form, void *arg, if(!nread) break; - switch(nread) { - default: - if(append(arg, buffer, nread) == nread) - break; - /* FALLTHROUGH */ - case CURL_READFUNC_ABORT: + if((nread <= sizeof(buffer) && + (append(arg, buffer, nread) == nread))) + ; + /* anything else is an error */ + else if(nread == CURL_READFUNC_ABORT) result = CURLE_ABORTED_BY_CALLBACK; - break; - case (size_t) -1: /* Read error. */ - case CURL_READFUNC_PAUSE: /* Should not be paused. */ + else result = CURLE_READ_ERROR; - break; - } } Curl_mime_cleanpart(&toppart); |