curl tool: OOM handling fixes
This commit is contained in:
parent
5bf0d74120
commit
ec73fd89ed
@ -936,7 +936,8 @@ ParameterError getparameter(char *flag, /* f or -long-flag */
|
||||
}
|
||||
else {
|
||||
GetStr(&postdata, p);
|
||||
size = strlen(postdata);
|
||||
if(postdata)
|
||||
size = strlen(postdata);
|
||||
}
|
||||
|
||||
if(!postdata) {
|
||||
@ -1019,8 +1020,12 @@ ParameterError getparameter(char *flag, /* f or -long-flag */
|
||||
}
|
||||
|
||||
#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
|
||||
|
||||
@ -1032,6 +1037,7 @@ ParameterError getparameter(char *flag, /* f or -long-flag */
|
||||
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;
|
||||
}
|
||||
@ -1053,8 +1059,10 @@ ParameterError getparameter(char *flag, /* f or -long-flag */
|
||||
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':
|
||||
|
@ -132,6 +132,7 @@ char *add_file_name_to_url(CURL *curl, char *url, const char *filename)
|
||||
if(encfile) {
|
||||
char *urlbuffer = malloc(strlen(url) + strlen(encfile) + 3);
|
||||
if(!urlbuffer) {
|
||||
curl_free(encfile);
|
||||
Curl_safefree(url);
|
||||
return NULL;
|
||||
}
|
||||
@ -143,8 +144,8 @@ char *add_file_name_to_url(CURL *curl, char *url, const char *filename)
|
||||
sprintf(urlbuffer, "%s/%s", url, encfile);
|
||||
|
||||
curl_free(encfile);
|
||||
|
||||
Curl_safefree(url);
|
||||
|
||||
url = urlbuffer; /* use our new URL instead! */
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user