diff options
author | Dan Fandrich <dan@coneharvesters.com> | 2007-05-01 20:52:05 +0000 |
---|---|---|
committer | Dan Fandrich <dan@coneharvesters.com> | 2007-05-01 20:52:05 +0000 |
commit | 19a80add9505e6cab2741145996b348b73905ad0 (patch) | |
tree | 45efdc2d81e95fa4371a3f421ced09787c2b3821 | |
parent | 93844f64efcf8c5a291b26dc43b4d6057240a27b (diff) |
Improved behaviour in out of memory conditions.
-rw-r--r-- | src/main.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/main.c b/src/main.c index ee2803537..2c08a4469 100644 --- a/src/main.c +++ b/src/main.c @@ -3409,7 +3409,7 @@ CURLcode _my_setopt(CURL *curl, const char *name, CURLoption tag, ...) remark?"/* ":"", name, value, remark?" [REMARK] */":""); - if (!curl_slist_append(easycode, bufp)) + if (!bufp || !curl_slist_append(easycode, bufp)) ret = CURLE_OUT_OF_MEMORY; curl_free(bufp); va_end(arg); @@ -3500,7 +3500,7 @@ operate(struct Configurable *config, int argc, argv_item_t argv[]) URLGlob *inglob=NULL; int urlnum; int infilenum; - char *outfiles; + char *outfiles=NULL; char *infiles; /* might a glob pattern */ char *uploadfile=NULL; /* a single file, never a glob */ @@ -3776,7 +3776,13 @@ operate(struct Configurable *config, int argc, argv_item_t argv[]) outs.bytes = 0; /* nothing written yet */ /* save outfile pattern before expansion */ - outfiles = urlnode->outfile?strdup(urlnode->outfile):NULL; + if (urlnode->outfile) { + outfiles = strdup(urlnode->outfile); + if (!outfiles) { + clean_getout(config); + break; + } + } infiles = urlnode->infile; @@ -4592,7 +4598,8 @@ quit_curl: /* cleanup the curl handle! */ curl_easy_cleanup(curl); - curl_slist_append(easycode, "curl_easy_cleanup(hnd);"); + if (easycode) + curl_slist_append(easycode, "curl_easy_cleanup(hnd);"); if(config->headerfile && !headerfilep && heads.stream) fclose(heads.stream); |