New upstream version 1.9
[debian/gzip] / lib / fprintf.c
index 7070f95b45093ee2a4c60a482b5581335bdd11fc..4ac9fbd42ad0f7f93f8663080eba5201d7b1f852 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to a stream.
-   Copyright (C) 2004, 2006-2008 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2006-2018 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -12,7 +12,7 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
@@ -55,14 +55,17 @@ fprintf (FILE *fp, const char *format, ...)
   if (fwrite (output, 1, len, fp) < len)
     {
       if (output != buf)
-       {
-         int saved_errno = errno;
-         free (output);
-         errno = saved_errno;
-       }
+        {
+          int saved_errno = errno;
+          free (output);
+          errno = saved_errno;
+        }
       return -1;
     }
 
+  if (output != buf)
+    free (output);
+
   if (len > INT_MAX)
     {
       errno = EOVERFLOW;