Commit 19a80add authored by Dan Fandrich's avatar Dan Fandrich
Browse files

Improved behaviour in out of memory conditions.

parent 93844f64
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -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,6 +4598,7 @@ quit_curl:

  /* cleanup the curl handle! */
  curl_easy_cleanup(curl);
  if (easycode)
    curl_slist_append(easycode, "curl_easy_cleanup(hnd);");

  if(config->headerfile && !headerfilep && heads.stream)