]> granicus.if.org Git - curl/commitdiff
better cleanup when existing due to bad usage
authorDaniel Stenberg <daniel@haxx.se>
Mon, 8 Jan 2001 15:02:58 +0000 (15:02 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Mon, 8 Jan 2001 15:02:58 +0000 (15:02 +0000)
src/main.c

index fa49688d87cc58cd3ce79975267ac7d3b001c4fa..47087754aac6c4c2f98bcbacf8ee45add2fd9cc5 100644 (file)
@@ -443,6 +443,23 @@ static char *file2memory(FILE *file, long *size)
     return NULL; /* no string */
 }
 
+void clean_getout(struct Configurable *config)
+{
+  struct getout *node=config->url_list;
+  struct getout *next;
+
+  while(node) {
+    next = node->next;
+    if(node->url)
+      free(node->url);
+    if(node->outfile)
+      free(node->outfile);
+    free(node);
+
+    node = next; /* GOTO next */
+  }
+}
+
 struct getout *new_getout(struct Configurable *config)
 {
   struct getout *node =malloc(sizeof(struct getout));
@@ -1480,6 +1497,7 @@ operate(struct Configurable *config, int argc, char *argv[])
             /* no text */
             break;
           }
+          clean_getout(config);
          return CURLE_FAILED_INIT;
         }
 
@@ -1530,7 +1548,7 @@ operate(struct Configurable *config, int argc, char *argv[])
     /* save outfile pattern before expansion */
     outfiles = urlnode->outfile?strdup(urlnode->outfile):NULL;
 
-    if (!outfiles || strequal(outfiles, "-") && urlnum > 1) {
+    if ((!outfiles || strequal(outfiles, "-")) && urlnum > 1) {
       /* multiple files extracted to stdout, insert separators! */
       separator = 1;
     }