summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/formdata.c17
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);