Honour --stderr with the -v option.
authorDan Fandrich <dan@coneharvesters.com>
Thu, 26 Jun 2008 01:43:53 +0000 (01:43 +0000)
committerDan Fandrich <dan@coneharvesters.com>
Thu, 26 Jun 2008 01:43:53 +0000 (01:43 +0000)
Fixed a file handle leak in the command line client if more than one
--stderr option was given.

CHANGES
src/main.c

diff --git a/CHANGES b/CHANGES
index 2951b1e..ca52dd1 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,12 @@
 
                                   Changelog
 
+Daniel Fandrich (25 Jun 2008)
+- Honour --stderr with the -v option.
+
+- Fixed a file handle leak in the command line client if more than one
+  --stderr option was given.
+
 Daniel Stenberg (22 Jun 2008)
 - Eduard Bloch filed the debian bug report #487567
   (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=487567) pointing out that
index 077dc8c..756c09b 100644 (file)
@@ -1950,7 +1950,7 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */
         break;
 
       case 'u': /* --crlf */
-        /* LF -> CRLF conversinon? */
+        /* LF -> CRLF conversion? */
         config->crlf = TRUE;
         break;
 
@@ -1960,6 +1960,8 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */
           if(!newfile)
             warnf(config, "Failed to open %s!\n", nextarg);
           else {
+            if(config->errors_fopened)
+              fclose(config->errors);
             config->errors = newfile;
             config->errors_fopened = TRUE;
           }
@@ -3449,7 +3451,7 @@ int my_trace(CURL *handle, curl_infotype type,
       config->trace_stream = stdout;
     else if(curlx_strequal("%", config->trace_dump))
       /* Ok, this is somewhat hackish but we do it undocumented for now */
-      config->trace_stream = stderr;
+      config->trace_stream = config->errors;  /* aka stderr */
     else {
       config->trace_stream = fopen(config->trace_dump, "w");
       config->trace_fopened = TRUE;