}
else {
GetStr(&postdata, p);
- size = strlen(postdata);
+ if(postdata)
+ size = strlen(postdata);
}
if(!postdata) {
}
#ifdef CURL_DOES_CONVERSIONS
- if(subletter != 'b') { /* NOT forced binary, convert to ASCII */
- convert_to_network(postdata, strlen(postdata));
+ if(subletter != 'b') {
+ /* NOT forced binary, convert to ASCII */
+ if(convert_to_network(postdata, strlen(postdata))) {
+ Curl_safefree(postdata);
+ return PARAM_NO_MEM;
+ }
}
#endif
curl_off_t newlen = oldlen + size + 2;
config->postfields = malloc((size_t)newlen);
if(!config->postfields) {
+ Curl_safefree(oldpost);
Curl_safefree(postdata);
return PARAM_NO_MEM;
}
We can't set the request type here, as this data might be used in
a simple GET if -G is used. Already or soon.
- if(SetHTTPrequest(HTTPREQ_SIMPLEPOST, &config->httpreq))
- return PARAM_BAD_USE;
+ if(SetHTTPrequest(HTTPREQ_SIMPLEPOST, &config->httpreq)) {
+ Curl_safefree(postdata);
+ return PARAM_BAD_USE;
+ }
*/
break;
case 'D':
if(encfile) {
char *urlbuffer = malloc(strlen(url) + strlen(encfile) + 3);
if(!urlbuffer) {
+ curl_free(encfile);
Curl_safefree(url);
return NULL;
}
sprintf(urlbuffer, "%s/%s", url, encfile);
curl_free(encfile);
-
Curl_safefree(url);
+
url = urlbuffer; /* use our new URL instead! */
}
}